Submission #293667

#TimeUsernameProblemLanguageResultExecution timeMemory
293667Aldas25Remittance (JOI19_remittance)C++14
15 / 100
1097 ms87052 KiB
//#pragma GCC optimize("O3") #include <bits/stdc++.h> //#include <ctime> using namespace std; #define FAST_IO ios_base::sync_with_stdio(0); cin.tie(nullptr) #define FOR(i, a, b) for(int i = (a); i <= (b); i++) #define REP(n) FOR(O, 1, (n)) #define pb push_back #define f first #define s second typedef long double ld; typedef long long ll; typedef pair<int, int> pii; typedef pair<int, pii> piii; typedef vector<int> vi; typedef vector<pii> vii; typedef vector<ll> vl; typedef vector<piii> viii; //mt19937 rng(chrono::steady_clock::now().time_since_epoch().count()); const int MAXN = 1000100, MAXK = 20; const ll MOD = 1e9+7; const ll INF = 1e16; const ld PI = asin(1) * 2; void setIO () { FAST_IO; } void setIO (string s) { setIO(); freopen((s+".in").c_str(),"r",stdin); freopen((s+".out").c_str(),"w",stdout); } int n; ll a[MAXN], b[MAXN]; map<vi, int> d; void bfs () { queue<vi> q; vi st(n); FOR(i, 0, n-1) st[i] = a[i]; d[st] = 1; q.push(st); while (!q.empty()) { st = q.front(); q.pop(); //cout << " st: "; //for (int x : st) cout << " " << x; //cout << " d = " << d[st] << endl; FOR(i, 0, n-1) { vi newSt(n); FOR(j, 0, n-1) newSt[j] = st[j]; if (newSt[i] > 1) { newSt[i] -= 2; newSt[(i+1)%n] ++; } if (d[newSt] == 0) { d[newSt] = d[st] + 1; q.push(newSt); } } } } int main() { setIO(); cin >> n; FOR(i, 0, n-1) cin >> a[i] >> b[i]; bfs (); vi st(n); FOR(i, 0, n-1) st[i] = b[i]; if (d[st] > 0) cout << "Yes\n"; else cout << "No\n"; return 0; } /* 3 10 7 10 10 10 10 ans: yes 3 3 0 0 0 0 0 ans: no */

Compilation message (stderr)

remittance.cpp: In function 'void setIO(std::string)':
remittance.cpp:35:10: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)', declared with attribute warn_unused_result [-Wunused-result]
   35 |   freopen((s+".in").c_str(),"r",stdin);
      |   ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
remittance.cpp:36:10: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)', declared with attribute warn_unused_result [-Wunused-result]
   36 |   freopen((s+".out").c_str(),"w",stdout);
      |   ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...