제출 #1182932

#제출 시각아이디문제언어결과실행 시간메모리
1182932abdalrhman_sfarA Light Inconvenience (CEOI23_light)C++20
100 / 100
160 ms436 KiB
#include "light.h" #include <bits/stdc++.h> #include <vector> using namespace std; #define int long long vector<int> v; void prepare(){ v.emplace_back(1); } pair<long long, vector<long long>> join(long long p){ int n=v.back()+p; vector<int> ans; ans.emplace_back(n); int i=v.size()-1,c=n; while (c>1) { int a=(c-1)-(n-c+1); if (c<=v[i]) {--i; continue;} else if (a<=v[i]) { if (i==0) { ans.emplace_back(v[i]); c=v[i]; continue; } else { if (a<=v[i-1]) {--i; continue;} else if (a<=(v[i-1]+p)) {--i; continue;} else { ans.emplace_back(v[i]); c=v[i]; continue; } } } else { ans.emplace_back(a); c=a; continue; } } sort(ans.begin(),ans.end()); unique(ans.begin(),ans.end()); v.clear(); v=ans; return {p,ans}; } pair<long long, vector<long long>> leave(long long p){ //for (auto&it:v) cout << it << ' '; cout << '\n'; int n=v.back()-p; vector<int> ans; ans.emplace_back(n); int i=v.size()-1,c=n; while (c>1) { int a=(c-1)-(n-c+1); if (c<=v[i]) {--i; continue;} else if (a<=v[i]) { if (i==0) { ans.emplace_back(v[i]); c=v[i]; continue; } else { if (a<=v[i-1]) {--i; continue;} else if (a<=(v[i-1]+p)) {--i; continue;} else { ans.emplace_back(v[i]); c=v[i]; continue; } } } else { ans.emplace_back(a); c=a; continue; } } sort(ans.begin(),ans.end()); unique(ans.begin(),ans.end()); v.clear(); v=ans; return {p,ans}; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...