QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#473674 | #6515. Path Planning | mufeng12 | WA | 41ms | 3620kb | C++23 | 2.5kb | 2024-07-12 12:26:50 | 2024-07-12 12:26:50 |
Judging History
answer
#include<bits/stdc++.h>
using namespace std;
#define ll long long
#define ull unsigned long long
#define ld long double
#define inf 0x3f3f3f3f
#define all(x) (x).begin(),(x).end()
#define maxint INT32_MAX
#define minint INT32_MIN
#define maxll INT64_MAX
#define minll INT64_MIN
#define mod 998244353
#define nc() (p1==p2 && (p2=(p1=buf)+fread(buf,1,100000,stdin),p1==p2)?EOF:*p1++)
#pragma GCC optimize(2)
void write(int x);
ll c[120][120];
char *p1,*p2,buf[100000];
int read();
const int N=1e5+10;
int fact[N],infact[N];
struct node{
int v,w,x,y;
bool operator < (const node& b) const{
return v<b.v;
}
};
void solve(){
int n,m;
cin>>n>>m;
int q[n*m+1]={0};
vector<node> mp(n*m+1);
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
cin>>mp[(i-1)*m+j].v;
mp[(i-1)*m+j].w=i+j-2;
mp[(i-1)*m+j].x=i;
mp[(i-1)*m+j].y=j;
// if(mp[(i-1)*m+j].v==5||mp[(i-1)*m+j].v==2)
// cout<<mp[(i-1)*m+j].w<<endl;
}
}
sort(mp.begin()+1,mp.end());
int ans=0,ls=1;
int maxi=0,maxj=0;
int bl=0;
for(int i=1;i<=n*m;i++){
//if(mp[i].v>ans) break;
//cout<<i<<" "<<mp[i].v<<" "<<mp[i].w<<" "<<mp[i].x<<" "<<mp[i].y<<endl;
if(q[mp[i].w]) {//cout<<mp[i].v<<endl;
break;}
for(int j=1;j<i;j++){
if((mp[j].x>=mp[i].x&&mp[j].y>=mp[i].y)||(mp[j].x<=mp[i].x&&mp[j].y<=mp[i].y))
{
//cout<<j<<" "<<mp[j].v<<" "<<mp[j].w<<" "<<mp[j].x<<" "<<mp[j].y<<endl;
}
else
{
bl=1;
break;
}
}
if(bl) break;
ans=mp[i].v;
if(q[i]==0)q[mp[i].w]++;
}
if(ans==0) cout<<"0\n";
else cout<<ans+1<<"\n";
}
int main() {
int t=1;
cin>>t;
while(t--) solve();
return 0;
}
void write(int x)
{
if(x<0)
putchar('-'),x=-x;
if(x>9)
write(x/10);
putchar(x%10+'0');
return;
}
int read()
{
int x=0,f=1;
char ch=nc();
while(ch<48||ch>57)
{
if(ch=='-')
f=-1;
ch=nc();
}
while(ch>=48&&ch<=57)
x=x*10+ch-48,ch=nc();
return x*f;
}
// ll ksm(ll a,ll b,ll mod){
// ll ans=1;
// a%=mod;
// while(b>0){
// if(b&1) ans=ans*a%mod;
// a=a*a%mod;
// b>>=1;
// }
// return ans;
// }
Details
Tip: Click on the bar to expand more detailed information
Test #1:
score: 100
Accepted
time: 0ms
memory: 3512kb
input:
2 2 3 1 2 4 3 0 5 1 5 1 3 0 4 2
output:
3 5
result:
ok 2 number(s): "3 5"
Test #2:
score: -100
Wrong Answer
time: 41ms
memory: 3620kb
input:
10000 2 9 4 0 3 5 2 7 16 11 12 9 13 14 17 10 8 15 1 6 4 8 19 23 22 13 29 4 17 26 30 6 25 3 15 24 18 14 12 8 7 9 27 5 0 10 11 16 31 20 2 28 1 21 1 6 3 2 0 1 4 5 2 3 4 2 0 3 5 1 5 1 4 0 3 2 1 1 3 1 0 2 8 10 9 50 8 0 41 57 60 30 23 65 64 21 36 12 10 5 58 19 38 67 71 52 45 17 77 4 59 51 22 25 56 49 79 2...
output:
9 2 6 3 5 3 14 13 5 9 5 7 6 9 7 4 6 7 13 9 10 9 6 0 5 7 4 2 10 4 18 5 12 3 7 6 9 2 0 5 6 10 8 4 2 5 2 5 7 13 6 10 2 10 3 6 9 8 3 10 2 3 3 5 8 4 7 7 7 8 8 6 6 5 3 7 7 13 3 3 6 5 4 3 10 5 12 7 2 11 6 7 5 10 9 5 3 10 2 5 3 8 7 10 5 4 10 4 6 5 9 4 10 6 3 5 4 4 7 4 8 3 12 5 4 5 8 6 8 3 7 9 3 6 12 4 6 6 6...
result:
wrong answer 24th numbers differ - expected: '1', found: '0'