Submission #859880

#TimeUsernameProblemLanguageResultExecution timeMemory
859880Boycl07Remittance (JOI19_remittance)C++17
100 / 100
73 ms8284 KiB
#include <bits/stdc++.h>
 
using namespace std;
 
typedef long long ll;
 
#define rep(i, n) for(int i = 1; i <= n; ++i)
#define forn(i, l, r) for(int i = l; i <= r; ++i)
#define ford(i, r, l) for(int i = r; i >= l; --i)
#define FOR(i, n) for(int i = 0; i < n; ++i)
#define fi first
#define se second
#define pii pair<int, int>
#define pll pair<ll, ll>
#define pb push_back
#define task "MEETING"
#define endl "\n"
#define sz(a) int(a.size())
#define C(x, y) make_pair(x, y)
#define all(a) (a).begin(), (a).end()
#define bit(i, mask) (mask >> i & 1)
 
template<typename T> bool maximize(T &res, const T &val) { if (res < val){ res = val; return true; }; return false; }
template<typename T> bool minimize(T &res, const T &val) { if (res > val){ res = val; return true; }; return false; }
 
 inline int readInt()       {char c;while(c=getchar(),c!='-'&&(c<'0'||c>'9'));bool sign=(c=='-');if(sign)c=getchar();int n=c-'0';while(c=getchar(),c>='0'&&c<='9')n=10*n+c-'0';return(!sign)?n:-n;}
inline ll readLong()       {char c;while(c=getchar(),c!='-'&&(c<'0'||c>'9'));bool sign=(c=='-');if(sign)c=getchar();ll  n=c-'0';while(c=getchar(),c>='0'&&c<='9')n=10*n+c-'0';return(!sign)?n:-n;}
inline string readString() {char c;while(c=getchar(),c==' '||c=='\n'||c=='\t');string s({c});while(c=getchar(),c!=EOF&&c!=' '&&c!='\n'&&c!='\t')s+=c;return s;}
 
 
const int N =  1e6 + 10;
const int N1 = 2e3 + 10;
const int K = 1e2 + 1;
const int MOD = 1e9 + 7;
const int INF = 1e9 + 1;
const int block_size = 230;
const int LOG = 13;
const int offset = N;
const int LIM = 2e5;
const int AL = 26;
const int M = 11;
const int lim = (1 << 10) - 1;
 
int n;
 
int a[N], b[N];
 
void solve()
{
    n = readInt();
	rep(i, n) a[i] = readInt(), b[i] = readInt(), a[i] -= b[i];
	while(true)
	{
		bool flag = 0;
		rep(i, n)
		{
			if(a[i] >= 2)
			{
				flag = 1;
				a[i % n + 1] += a[i] >> 1;
				a[i] &= 1;
			}
		}
		if(!flag)
		{
			bool c = 0;
			rep(i, n)
			{
				if(a[i] == 1 && b[i] != 0) 
				{
					c = 1;
					a[i] = -1, ++a[i % n + 1];
				}
			}
			if(!c) break;
		}
	}
	bool flag = 1;
	rep(i, n) flag &= a[i] == 0;
	if(flag) cout << "Yes";
	else cout << "No";
}
 
signed main()
{
    ios_base::sync_with_stdio(0);
    cin.tie(0); cout.tie(0);
 
    if(fopen("trie.inp", "r"))
    {
        freopen("trie.inp", "r", stdin);
        freopen("trie.out", "w", stdout);
    }
 
    int TC = 1;
 
    while(TC--)
    {
        solve();
        cout << endl;
    }
 
    return 0;
}
//ha

Compilation message (stderr)

remittance.cpp: In function 'int main()':
remittance.cpp:91:16: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   91 |         freopen("trie.inp", "r", stdin);
      |         ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~
remittance.cpp:92:16: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   92 |         freopen("trie.out", "w", stdout);
      |         ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...