# | TimeUTC-0 | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
701538 | starplat | Mecho (IOI09_mecho) | C++14 | 266 ms | 8140 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>
#define f first
#define s second
#define mp make_pair
using namespace std;
int n,S,vis[805][805],tim[805][805];
pair<int,int> st,ed,bck[805][805];
char c[805][805];
vector<pair<int,int>> d,path;
queue<pair<pair<int,int>,pair<int,int>>> q;
bool ok(int x,int y){
return (1<=x && x<=n && 1<=y && y<=n);
}
bool pass(int T){
T*=S;
for (int i=1;i<=n;i++) for (int j=1;j<=n;j++) vis[i][j]=0;
queue<pair<pair<int,int>,int>> t; t.push(mp(st,T));
while (!t.empty()){
auto x=t.front(); t.pop();
if (x.f==ed) vis[x.f.f][x.f.s]=x.s;
else if (x.s>=(tim[x.f.f][x.f.s]-1)*S || vis[x.f.f][x.f.s]) continue;
vis[x.f.f][x.f.s]=x.s;
for (auto k:d){
int a=x.f.f+k.f; int b=x.f.s+k.s;
if (ok(a,b) && c[a][b]!='T') t.push(mp(mp(a,b),x.s+1));
}
}
return vis[ed.f][ed.s];
}
int main() {
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |