QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#323901#4829. Mark on a Graphhotboy27030 1ms4072kbC++142.2kb2024-02-10 14:04:122024-02-10 14:04:13

Judging History

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

  • [2024-02-10 14:04:13]
  • 评测
  • 测评结果:0
  • 用时:1ms
  • 内存:4072kb
  • [2024-02-10 14:04:12]
  • 提交

answer

#include<bits/stdc++.h>
using namespace std;
using ll = long long;
using ull = unsigned long long;
using ld = long double;
#define pll pair <ll,ll>
#define fi first
#define se second
#define sz(a) (ll((a).size()))
#define BIT(mask,i) (((mask) >> (i))&1LL)
#define MASK(i) (1LL << (i))
ll n,m;
vector <ll> g[1010];
int main(){
    ios_base::sync_with_stdio(0);cin.tie(nullptr);cout.tie(nullptr);
    cin>>n>>m;
    vector <pll> edge;
    for (ll i = 1;i <= m;i ++){
        ll u,v;
        cin>>u>>v;
        g[u].push_back(v);
        g[v].push_back(u);
        edge.push_back({u,v});
    }
    ll cnt[6]={};
    for (ll i = 1;i <= n;i ++){
        if (sz(g[i])<6)cnt[sz(g[i])]^=1;
    }
    if (cnt[0]+cnt[1]+cnt[2]+cnt[3]+cnt[4]!=0){
        cout<<"mark\n";
        vector <pll> del;
        for (ll i = 0;i < 5;i ++){
//            cout<<i<<endl;
            ll sum = 0;
            for (ll j = 1;j <= n;j ++)sum += sz(g[j])==i;
            if (sum%2){
                bool ok = 0;
                for (ll j = 1;j <= n && !ok;j ++){
                    if (sz(g[j])==i+1){
                        for (auto x:g[j]){
                            if (sz(g[x])>i+1){
                                del.push_back({j,x});
//                                cout<<i<<' '<<j<<' '<<x<<' '<<sz(g[j])<<' '<<sz(g[x])<<'\n';
                                for (ll k = 0;k < sz(g[j]);k++){
                                    if (g[j][k]==x){
                                        g[j].erase(g[j].begin()+k);
                                    }
                                }
                                ok = 1;
                                break;
                            }
                        }
                    }
                }
                assert(ok);
            }
        }
        memset(cnt,0,sizeof cnt);
        for (ll i = 1;i <= n;i ++){
            if (sz(g[i])<6)cnt[sz(g[i])]^=1;
        }
        assert(cnt[0]+cnt[1]+cnt[2]+cnt[3]+cnt[4]==0);
        cout<<sz(del)<<'\n';
        for (auto x:del)cout<<x.fi<<' '<<x.se<<'\n';
    }
    else{
        cout<<"ok";
    }
//    cout<<even<<'\n';
}


详细

Test #1:

score: 0
Wrong Answer
time: 1ms
memory: 4072kb

input:

1000 3560
603 151
415 20
102 569
895 552
678 734
24 614
689 518
440 223
751 919
223 433
711 551
502 634
706 583
812 501
514 535
780 751
720 530
532 384
888 139
864 791
292 675
171 881
30 592
464 557
280 299
654 650
894 335
250 532
792 10
83 969
118 771
579 300
852 983
243 940
957 939
817 889
911 319...

output:

mark
1
501 812

input:

1000 3559
626 128
295 222
563 601
534 909
257 682
833 706
155 524
656 841
286 184
383 294
259 86
771 532
355 37
755 167
484 763
209 250
693 401
209 500
243 369
380 521
363 479
676 977
920 112
831 175
688 93
125 692
654 102
757 70
440 449
733 87
956 373
137 600
749 219
267 793
201 155
975 583
557 937...

output:

mark
1
6 705

result:

wrong answer Token "mark" doesn't correspond to pattern "ok"