제출 #311707

#제출 시각아이디문제언어결과실행 시간메모리
311707mohamedsobhi777Remittance (JOI19_remittance)C++14
0 / 100
1091 ms512 KiB
#include<bits/stdc++.h> #pragma GCC optimize("-Ofast") //#pragma GCC optimize("trapv") #pragma GCC target("sse,sse2,sse3,ssse3,sse4,sse4.2,popcnt,abm,mmx,avx2,tune=native") #pragma GCC optimize("-ffast-math") #pragma GCC optimize("-funroll-loops") #define I inline void #define S struct #define vi vector<int> #define vii vector<pair<int,int>> #define pii pair<int,int> #define pll pair<ll,ll> using namespace std ; using ll = long long ; using ld = long double ; const int N = 1e6 + 7 , mod = 1e9 + 7 ; const ll inf = 2e18 ; // How interesting! int n ; int A[N] ; int main(){ ios_base::sync_with_stdio(0) ; cin.tie(0) ; //freopen("in.in" , "r" , stdin) ; cin >> n; priority_queue<pair<int,int>>q ; for(int i = 0 ; i < n ; ++ i){ int a , b ; cin >> a >> b; q.push({a-b , i}) ; A[i] = a - b ; } while(q.size()){ int x = q.top().first ; int y = q.top().second ; q.pop() ; if(A[y] != x){ if(A[y]){ q.push({A[y] , y}) ; } continue ; } if(!x)continue ; if(x < 0)return cout<<"No" , 0 ; A[(y+1)%n]+=x/2; if(A[(y+1)%n]) q.push({A[(y+1)%n],(y+1)%n}) ; A[y] %=2 ; } cout<<"Yes" ; return 0 ; } /* - bounds sir (segtree = 4N, eulerTour = 2N, ...) - a variable defined twice? - will overflow? - is it a good complexity? - don't mess up indices (0-indexed vs 1-indexed) - reset everything between testcases. */
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...