QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#287663#2832. Graph Theorygeruome#WA 12ms5672kbC++141.3kb2023-12-20 21:23:192023-12-20 21:23:20

Judging History

你现在查看的是最新测评结果

  • [2023-12-20 21:23:20]
  • 评测
  • 测评结果:WA
  • 用时:12ms
  • 内存:5672kb
  • [2023-12-20 21:23:19]
  • 提交

answer

#include<bits/stdc++.h>
using namespace std;
#define IOS {cin.tie(0);cout.tie(0);ios::sync_with_stdio(0);}
#define rep(i,l,r) for(int i=(l); i<=(r); i++)
#define per(i,r,l) for(int i=(r); i>=(l); i--)
#define P pair<int,int>
#define ll long long
#define vi vector<int>
const int N=2e5+5;
int n,m;
P eg[N];
int d[N],X;
bool ck(int res){
    rep(i,0,n)d[i]=0;
    auto add=[&](int l,int r){
        // cout<<l<<" "<<r<<endl;
        ++d[l]; --d[r];
    };
    rep(i,1,m){
        auto [u,v]=eg[i];
        if(u==v)continue;
        int v1=(v-u)<=res,v2=(u+n-v)<=res;
        // cout<<v1<<" "<<v2<<endl;
        if(v1 && v2)continue;
        else if(!v1 && !v2)return false;
        if(v1){
            add(u,v);
        }
        else if(v2){
            add(u,n+1); add(1,v);
        }
    }
    rep(i,1,n){
        d[i]+=d[i-1]; assert(d[i]>=0);
        if(!d[i]){X=i;return true;}
    }
    return false;
}
void slv(){
    rep(i,1,m){
        int u,v; cin>>u>>v;
        if(u>v)swap(u,v);
        eg[i]={u,v};
    }
    int L=0,R=n;
    // cout<<ck(1)<<endl; return;
    while(L<=R){
        int mid=(L+R)>>1;
        if(ck(mid))R=mid-1;
        else L=mid+1;
    }
    cout<<L<<"\n";
}
signed main(){
    IOS
    while(cin>>n>>m){
        slv();
    }
}

详细

Test #1:

score: 100
Accepted
time: 1ms
memory: 5672kb

input:

3 2
1 2
2 3
3 2
1 1
2 2
3 3
1 2
2 3
3 1

output:

1
0
2

result:

ok 3 lines

Test #2:

score: 0
Accepted
time: 0ms
memory: 3624kb

input:

2 1
1 2

output:

1

result:

ok single line: '1'

Test #3:

score: -100
Wrong Answer
time: 12ms
memory: 3632kb

input:

17 17
6 10
1 9
14 6
12 13
5 4
15 17
14 15
6 5
10 6
10 11
2 9
9 6
17 15
9 15
4 8
1 4
13 15
13 19
11 10
12 10
10 5
2 8
12 11
8 3
1 7
10 9
8 5
1 5
9 4
8 7
12 10
6 8
13 1
5 8
11 5
10 8
7 7
16 14
9 5
8 1
4 16
10 8
16 15
15 1
13 5
9 3
4 4
9 7
7 2
5 4
5 11
9 14
5 13
1 5
4 5
4 1
4 4
1 1
5 3
3 5
4 1
3 2
5 1
...

output:

8
12
14
4
1
3
11
6
2
9
3
14
14
17
14
18
5
13
12
13
11
18
7
11
10
13
2
3
2
11
9
9
13
6
3
17
4
1
15
10
17
2
6
5
1
4
2
4
11
13
13
10
4
11
10
11
5
12
1
8
5
3
1
8
8
8
10
8
11
9
12
15
3
3
9
10
8
5
10
11
8
1
4
4
8
1
18
13
5
14
4
6
7
7
10
11
1
9
14
11
9
5
9
4
8
10
11
6
12
2
14
5
6
10
15
12
1
4
2
6
12
13
14
...

result:

wrong answer 2nd lines differ - expected: '6', found: '12'