QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#407107 | #7111. Press the Button | Sorting | WA | 1ms | 3768kb | C++20 | 2.1kb | 2024-05-07 23:03:41 | 2024-05-07 23:03:42 |
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 ) {
if ( tot_tests == 2 ) {
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: 3680kb
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: 0ms
memory: 3768kb
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:
8 3 9 9 10 2
result:
wrong answer 1st numbers differ - expected: '71', found: '8'