Submission #1137689

#TimeUsernameProblemLanguageResultExecution timeMemory
1137689Muhammad_AneeqText editor (CEOI24_editor)C++20
45 / 100
4099 ms112360 KiB
/* بسم الله الرحمن الرحيم Author: (:Muhammad Aneeq:) */ #include <iostream> #include <map> #include <queue> #warning check the output using namespace std; int const N=1e6+10; int n; int a[N]={}; map<pair<int,int>,int>vals; void bfs(int i,int j) { queue<pair<int,int>>Q; Q.push({i,j}); while (Q.size()) { int x,y; tie(x,y)=Q.front(); Q.pop(); int x1=x-1,y1=y; if (x1>0) { y1=min(y,a[x1]+1); if (vals.find({x1,y1})==vals.end()) vals[{x1,y1}]=2e9+10; if (vals[{x1,y1}]>vals[{x,y}]+1) { Q.push({x1,y1}); vals[{x1,y1}]=vals[{x,y}]+1; } } x1=x+1,y1=y; if (x1<=n) { y1=min(y1,a[x1]+1); if (vals.find({x1,y1})==vals.end()) vals[{x1,y1}]=2e9+10; if (vals[{x1,y1}]>vals[{x,y}]+1) { Q.push({x1,y1}); vals[{x1,y1}]=vals[{x,y}]+1; } } x1=x+1,y1=1; if (x1<=n) { if (vals.find({x1,y1})==vals.end()) vals[{x1,y1}]=2e9+10; if (vals[{x1,y1}]>vals[{x,y}]+a[x]+2-y) { Q.push({x1,y1}); vals[{x1,y1}]=vals[{x,y}]+a[x]-y+2; } } x1=x-1; if(x1>0) { y1=a[x1]+1; if (vals.find({x1,y1})==vals.end()) vals[{x1,y1}]=2e9+10; if (vals[{x1,y1}]>vals[{x,y}]+y) { Q.push({x1,y1}); vals[{x1,y1}]=vals[{x,y}]+y; } } } } inline void solve() { cin>>n; int sl,sc; cin>>sl>>sc; int el,ec; cin>>el>>ec; vals[{sl,sc}]=0; for (int i=1;i<=n;i++) cin>>a[i]; bfs(sl,sc); int ans=2e9+10; for (auto i:vals) { int x,y; tie(x,y)=i.first; if (el!=x) continue; ans=min(ans,abs(el-x)+abs(ec-y)+i.second); } cout<<ans<<endl; } int main() { ios_base::sync_with_stdio(false);cin.tie(NULL);cout.tie(NULL); int t=1; for (int i=1;i<=t;i++) { solve(); } }

Compilation message (stderr)

Main.cpp:10:2: warning: #warning check the output [-Wcpp]
   10 | #warning check the output
      |  ^~~~~~~
#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...