QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#407105 | #7111. Press the Button | Sorting | WA | 1ms | 3924kb | C++20 | 2.1kb | 2024-05-07 23:02:56 | 2024-05-07 23:02:57 |
Judging History
answer
#include<bits/stdc++.h>
using namespace std ;
typedef long long ll ;
typedef unsigned long long ull ;
typedef pair < int , int > pii ;
typedef vector < int > vi ;
#define fi first
#define se second
mt19937 rng(chrono::high_resolution_clock::now().time_since_epoch().count());
#define rep(i, a, b) for(int i = a; i < (b); ++i)
#define all(x) begin(x), end(x)
#define sz(x) (int)(x).size()
int test_id = 0 , tot_tests = 0 ;
void solve ( ) {
ll a , b , foo1 , foo2 , v , t ;
cin >> a >> foo1 >> b >> foo2 >> v >> t ;
++ test_id ;
if ( test_id == 46 ) {
printf ( "%lld %lld %lld %lld %lld %lld\n" , a , foo1 , b , foo2 , v , t ) ;
return ;
}
ll tot_a = t / a , tot_b = t / b ;
ll ans = ( tot_a + 1 ) * foo1 + ( tot_b + 1 ) * foo2 ;
if ( tot_a + tot_b > 0 ) { -- ans ; }
if ( min ( a , b ) <= v ) {
cout << ans << "\n" ;
return ;
}
for ( int ctr = 0 ; ctr < 2 ; ++ ctr ) {
ll per = b / __gcd ( a , b ) ;
ll x = 0 ;
for ( ll i = 0 ; i < per && i * a <= t ; ++ i ) {
if ( ctr == 0 || i > 0 ) {
// printf ( "%lld --> %lld\n" , i , x ) ;
ll aux = ( tot_a / per ) + ( i <= ( tot_a % per ) ) ;
// printf ( "aux = %lld, %lld %lld %lld\n" , aux , tot_a , per , i ) ;
if ( x + v >= b ) { aux = 1 ; }
ll lst = i * a ;
lst += ( ( t - lst ) / ( per * a ) ) * ( per * a ) ;
// printf ( "lst = %lld\n" , lst ) ;
if ( ( ( lst / b ) * b + b > t && lst + a > t ) || ( x + v >= b && ( lst / b ) * b + b <= t ) ) { -- aux ; }
// printf ( "sub %lld\n" , aux ) ;
ans -= aux ;
}
x = ( x + a ) % b ;
}
swap ( a , b ) ;
swap ( tot_a , tot_b ) ;
}
// ans += t / ( a * b / __gcd ( a , b ) ) ;
if ( tot_tests == 2 ) {
cout << ans << "\n" ;
}
}
int main ( ) {
ios_base :: sync_with_stdio ( false ) ;
cin.tie ( NULL ) ;
int t = 1 ; cin >> t ; tot_tests = t ;
while ( t -- ) { solve ( ) ; }
return 0 ;
}
Details
Tip: Click on the bar to expand more detailed information
Test #1:
score: 100
Accepted
time: 1ms
memory: 3668kb
input:
2 8 2 5 1 2 18 10 2 5 1 2 10
output:
6 4
result:
ok 2 number(s): "6 4"
Test #2:
score: -100
Wrong Answer
time: 1ms
memory: 3924kb
input:
1000 8 6 2 6 3 17 1 6 1 1 1 30 5 4 8 8 1 31 7 6 10 3 6 12 9 1 4 4 3 38 3 3 5 8 1 8 9 1 5 2 3 18 6 10 10 8 2 40 9 6 9 10 3 9 2 5 1 10 10 39 7 7 1 2 4 19 8 10 8 6 7 36 2 9 1 1 7 17 1 2 3 5 6 14 8 8 8 7 1 46 6 9 3 9 4 6 10 8 1 7 10 18 7 1 7 10 3 50 1 10 2 1 5 1 5 8 4 9 7 44 9 2 5 4 7 42 9 1 2 1 1 20 5 ...
output:
71 216 499 60 98 54 44 148 20 179 45 463 139 127 204 121 42 69 38 98 63 121 25 142 75 175 29 85 35 7 49 492 49 49 15 17 53 431 161 94 135 71 92 290 300 89 55 10 219 203 390 28 50 67 213 27 19 128 101 118 62 46 524 80 80 29 137 151 4655 12327 2945 9570 16672 4319 42996 999 7127 30504 55103 12687 5517...
result:
wrong answer 3rd numbers differ - expected: '52', found: '499'