| # | Time | Username | Problem | Language | Result | Execution time | Memory | 
|---|---|---|---|---|---|---|---|
| 321274 | CaroLinda | Remittance (JOI19_remittance) | C++14 | 666 ms | 21220 KiB | 
This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include <bits/stdc++.h>
 
const int MAX = 1e6+10 ;
 
using namespace std ;
 
int n ;
long long cash[MAX] , desired[MAX] ;
 
int main()
{
	scanf("%d", &n ) ;
 
	for(int i= 0 ; i < n ; i++ ) scanf("%lld %lld", &cash[i] , &desired[i] ) ;
 
	for(int g = 0 ; g < 60 ; g++ )
	{
		for(int i= 0 , nxt = 1 ; i < n ; i++ , nxt++ )
		{
			if(nxt == n) nxt = 0 ;
 
			long long leftOver = cash[i] - desired[i] ;
 
			if(leftOver < 0 ) continue ;
 
			cash[i] -= (leftOver/2LL ) *2LL ;
			cash[nxt] += leftOver/2LL ;
 
		}
	}
 
	bool ok = true ;
 
	for(int i= 0 ; i < n ; i++ )
		if(cash[i] != desired[i] ) ok = false ;
 
	bool everybodyOne = true ;
	for(int i = 0 ; i < n ; i++ ) 
		if(cash[i]-1 != desired[i]  ) everybodyOne = false ;
	bool someoneCan = false ;
	for(int i = 0 ; i < n ; i++ )
		if( cash[i] > 1 ) someoneCan = true ;
	if(ok|(everybodyOne&someoneCan) ) printf("Yes\n") ;
	else printf("No\n") ;
 
}
Compilation message (stderr)
| # | Verdict | Execution time | Memory | Grader output | 
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output | 
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output | 
|---|---|---|---|---|
| Fetching results... | ||||
