QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#59993#1845. PermuteCharlieVinnieML 338ms3724kbC++172.8kb2022-11-02 12:53:272022-11-02 12:53:29

Judging History

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

  • [2023-08-10 23:21:45]
  • System Update: QOJ starts to keep a history of the judgings of all the submissions.
  • [2022-11-02 12:53:29]
  • 评测
  • 测评结果:ML
  • 用时:338ms
  • 内存:3724kb
  • [2022-11-02 12:53:27]
  • 提交

answer

#include <bits/stdc++.h>
#define For(i,a,b) for(int i=a;i<=b;i++)
#define Rev(i,a,b) for(int i=a;i>=b;i--)
#define Fin(file) freopen(file,"r",stdin)
#define Fout(file) freopen(file,"w",stdout)
using namespace std;
const int N=0; typedef long long ll;
const int A[6]={1,3,2,6,4,5};
int calc(int x,int c){
    int res=0; For(i,0,c%6-1) res+=A[i];
    return res*x%7;
}
void print(vector< pair<int,int> > ans){
    cout<<ans.size()<<'\n';
    for(auto pr:ans) cout<<pr.second<<' '<<pr.first<<'\n';
}
int cy;
void solve(int T){
    vector<int> a(10); For(i,0,9) cin>>a[i];
    // if(T==1&&a[0]==2) cy=1;
    // if(cy){
    //     if(T==121) { For(i,0,9) cout<<a[i]<<' ';  cout<<endl; }
    //     return;
    // }
    vector<int> cnt(7); For(i,0,9) cnt[i%7]+=a[i];
    vector<int> lis; For(i,0,6) if(cnt[i]) lis.push_back(i);
    vector<int> tmp(7); vector< pair<int,int> > ans;
    if(lis.size()>=4u){
        For(i,0,3) tmp[lis[i]]=1;
    }
    else if(lis.size()==3u){
        int c2=0; For(i,0,2) if(cnt[lis[i]]>=2) c2++;
        if(c2>=2){
            c2=2; For(i,0,2) if(c2&&cnt[lis[i]]>=2) { c2--; tmp[lis[i]]=2; } else tmp[lis[i]]=1;
        }
        else{
            int c5=-1; For(i,0,2) if(cnt[lis[i]]>=5) { c5=i; break; }
            if(c5!=-1){
                For(i,0,2) if(i==c5) tmp[lis[i]]=5; else tmp[lis[i]]=1;
            }
            else{
                tmp=cnt;
            }
        }
    }
    else if(lis.size()==2u){
        if(cnt[lis[0]]>=3&&cnt[lis[1]]>=2){
            tmp[lis[0]]=3; tmp[lis[1]]=2;
        }
        else if(cnt[lis[0]]>=2&&cnt[lis[1]]>=3){
            tmp[lis[0]]=2; tmp[lis[1]]=3;
        }
        else{
            tmp=cnt;
        }
    }
    else{
        int u=lis[0];
        if(calc(u,cnt[u])==0){
            For(i,0,9) if(i%7==u) ans.emplace_back(i,a[i]);
            print(ans);
        }
        else{
            cout<<"-1\n";
        }
        return;
    }
    int cur=0; vector<int> cp;
    For(i,0,9){
        if(a[i]>=tmp[i%7]) { ans.emplace_back(i,a[i]-tmp[i%7]); cur=(cur*A[(a[i]-tmp[i%7])%6]+calc(i,a[i]-tmp[i%7]))%7; while(tmp[i%7]--){cp.push_back(i);} tmp[i%7]=0; }
        else For(_,1,a[i]) { tmp[i%7]--; cp.push_back(i); }
    }
    sort(cp.begin(),cp.end());
    int sz=cp.size(),ok=0;
    do{
        int res=cur*A[sz%6]%7;
        For(i,0,sz-1) res=(res+cp[i]*A[i%6])%7;
        if(res==0){
            ok=1; Rev(i,sz-1,0) ans.emplace_back(cp[i],1);
            break;
        }
    }while(next_permutation(cp.begin(),cp.end()));
    if(ok) print(ans);
    else cout<<"-1\n";
}
signed main(){
    ios::sync_with_stdio(false); cin.tie(0); cout.tie(0);
    int T,Ti=0; cin>>T; while(T--) solve(++Ti);
    cerr<<"Time = "<<clock()<<" ms"<<endl;
    return 0;
}

// START TYPING IF YOU DON'T KNOW WHAT TO DO

Details

Tip: Click on the bar to expand more detailed information

Test #1:

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

input:

3
0 1 0 0 1 0 0 0 0 0
0 2 0 0 0 0 1 0 0 1
0 1000000000 0 0 0 0 0 0 0 0

output:

12
0 0
0 1
0 2
0 3
0 4
0 5
0 6
0 7
0 8
0 9
1 1
1 4
13
0 0
0 1
0 3
0 4
0 5
0 6
0 7
0 8
0 9
1 9
1 6
1 1
1 1
-1

result:

ok T=3

Test #2:

score: 0
Accepted
time: 248ms
memory: 3560kb

input:

100000
0 0 0 1 0 1 1 1 0 1
1 1 0 0 1 0 1 0 1 0
1 1 1 1 0 0 0 1 0 1
0 1 1 0 0 1 1 1 1 0
0 0 1 0 1 0 1 0 1 0
0 1 0 0 0 0 0 1 0 0
1 1 0 0 0 0 0 0 1 1
1 0 1 1 1 0 1 0 0 0
0 1 1 0 0 1 0 1 0 1
1 0 0 1 1 0 0 1 0 0
1 1 0 1 0 0 1 0 1 1
0 0 1 0 0 0 0 1 0 0
0 1 1 1 1 1 1 1 0 1
1 0 0 0 0 1 0 0 0 1
0 0 0 0 1 0 1...

output:

12
0 1
0 3
0 4
0 5
1 6
0 7
0 8
0 9
1 9
1 5
1 7
1 3
14
0 0
0 1
0 2
0 3
0 4
0 5
0 6
0 7
1 8
0 9
1 6
1 4
1 0
1 1
14
0 0
0 1
0 2
0 3
0 4
0 5
0 6
1 7
0 8
1 9
1 0
1 3
1 2
1 1
13
0 1
0 2
0 3
0 4
0 5
1 6
0 7
1 8
0 9
1 7
1 5
1 1
1 2
13
0 0
0 2
0 3
0 4
0 5
0 6
0 7
0 8
0 9
1 6
1 4
1 8
1 2
-1
12
0 0
0 3
0 4
0 5...

result:

ok T=100000

Test #3:

score: 0
Accepted
time: 267ms
memory: 3640kb

input:

100000
2 1 2 1 0 1 1 0 2 0
1 2 0 1 1 2 1 1 2 1
2 2 2 1 0 2 1 1 2 2
1 1 0 2 0 2 0 1 2 0
1 0 2 2 1 2 1 0 2 2
0 1 2 2 2 1 0 2 1 2
1 1 2 0 0 1 1 0 1 0
1 0 2 2 2 0 1 0 1 1
2 1 1 2 1 0 2 0 0 1
1 0 2 2 2 0 2 1 0 1
2 0 1 1 1 1 1 1 2 1
0 1 1 0 2 0 2 0 1 2
2 1 1 0 2 0 2 1 0 1
1 2 2 2 0 2 1 1 1 0
2 0 0 2 0 2 2...

output:

14
1 0
0 1
1 2
0 3
0 4
1 5
1 6
0 7
2 8
0 9
1 2
1 0
1 3
1 1
13
0 0
1 1
0 3
1 4
2 5
1 6
1 7
2 8
0 9
1 9
1 1
1 0
1 3
14
1 0
1 1
1 2
0 3
0 4
2 5
1 6
1 7
2 8
2 9
1 3
1 2
1 1
1 0
14
0 0
0 1
0 2
1 3
0 4
1 5
0 6
1 7
2 8
0 9
1 5
1 0
1 3
1 1
13
0 0
1 2
1 3
1 4
2 5
1 6
0 7
1 8
2 9
1 2
1 8
1 3
1 0
13
0 1
1 2
1 ...

result:

ok T=100000

Test #4:

score: 0
Accepted
time: 262ms
memory: 3724kb

input:

100000
1 3 3 2 3 0 2 1 3 2
3 1 2 0 0 3 1 0 0 1
3 2 0 2 0 2 0 1 3 1
0 1 0 3 1 1 0 3 0 2
2 2 2 3 3 3 1 0 3 0
0 3 0 2 0 3 2 0 2 3
3 0 1 1 3 3 2 1 3 1
1 2 3 0 1 2 2 0 2 3
3 1 0 3 2 0 2 3 1 0
2 1 2 3 0 2 2 3 1 2
3 3 0 3 0 0 1 1 1 1
1 3 1 0 2 1 0 3 3 3
3 0 0 3 3 2 3 3 2 1
3 3 3 1 0 2 3 0 2 3
3 3 1 3 3 2 3...

output:

14
0 0
2 1
2 2
1 3
3 4
0 5
2 6
1 7
3 8
2 9
1 3
1 1
1 2
1 0
14
2 0
0 1
1 2
0 3
0 4
2 5
1 6
0 7
0 8
1 9
1 1
1 5
1 2
1 0
13
2 0
1 1
1 3
0 4
2 5
0 6
1 7
3 8
0 9
1 9
1 1
1 0
1 3
12
0 1
2 3
1 4
1 5
0 6
2 7
0 8
1 9
1 3
1 9
1 7
1 1
14
1 0
1 1
1 2
2 3
3 4
3 5
1 6
0 7
3 8
0 9
1 2
1 3
1 1
1 0
13
0 0
2 1
1 3
0 ...

result:

ok T=100000

Test #5:

score: 0
Accepted
time: 262ms
memory: 3688kb

input:

100000
0 1 3 1 1 0 1 3 0 1
4 3 4 1 3 4 3 4 2 3
1 3 1 3 3 4 3 4 2 2
1 0 1 0 3 3 3 1 1 1
3 4 1 3 1 0 1 2 1 2
0 1 2 1 4 1 0 3 4 2
0 4 1 2 4 3 2 1 1 3
0 4 0 4 2 1 0 2 1 3
4 4 0 4 4 1 4 1 4 1
1 3 2 1 1 4 2 3 4 1
3 3 4 3 3 4 1 2 1 4
3 1 4 0 3 0 4 3 1 4
3 0 3 2 3 4 2 3 1 3
3 1 2 4 3 4 2 4 1 1
2 1 0 2 2 3 2...

output:

13
0 1
2 2
0 3
1 4
0 5
1 6
2 7
0 8
1 9
1 3
1 2
1 7
1 1
14
3 0
2 1
3 2
0 3
3 4
4 5
3 6
4 7
2 8
3 9
1 2
1 0
1 3
1 1
14
0 0
2 1
0 2
2 3
3 4
4 5
3 6
4 7
2 8
2 9
1 3
1 2
1 1
1 0
13
0 0
0 2
0 3
2 4
3 5
3 6
1 7
0 8
1 9
1 2
1 8
1 4
1 0
14
2 0
3 1
0 2
2 3
1 4
0 5
1 6
2 7
1 8
2 9
1 3
1 1
1 2
1 0
13
0 1
1 2
0 ...

result:

ok T=100000

Test #6:

score: 0
Accepted
time: 273ms
memory: 3688kb

input:

100000
0 2 1 4 1 4 1 1 3 4
2 3 3 1 3 4 2 1 1 1
1 2 1 3 3 1 1 5 0 0
1 4 0 3 1 1 0 0 0 4
4 3 5 0 0 0 4 2 5 1
3 2 5 1 2 5 0 0 0 1
2 0 5 3 1 3 0 5 1 3
0 2 5 4 5 5 1 1 1 0
1 3 1 4 4 5 2 2 2 1
2 1 2 1 0 0 1 2 5 1
0 2 0 4 5 4 5 2 0 3
5 3 5 5 2 2 4 0 5 5
3 4 2 2 5 1 5 0 3 4
0 3 3 0 5 3 3 4 3 5
0 3 5 4 3 3 4...

output:

13
1 1
0 2
3 3
1 4
4 5
1 6
0 7
3 8
4 9
1 3
1 2
1 7
1 1
14
1 0
2 1
2 2
0 3
3 4
4 5
2 6
1 7
1 8
1 9
1 2
1 3
1 1
1 0
14
0 0
1 1
0 2
2 3
3 4
1 5
1 6
5 7
0 8
0 9
1 0
1 3
1 2
1 1
13
0 0
3 1
2 3
1 4
1 5
0 6
0 7
0 8
3 9
1 9
1 1
1 3
1 0
14
3 0
2 1
4 2
0 3
0 4
0 5
3 6
2 7
5 8
1 9
1 1
1 2
1 6
1 0
14
2 0
1 1
4 ...

result:

ok T=100000

Test #7:

score: 0
Accepted
time: 277ms
memory: 3632kb

input:

100000
5 5 0 1 0 3 1 5 3 6
0 5 1 4 2 1 1 5 3 4
1 3 0 5 0 2 4 1 5 5
4 5 4 5 3 5 6 3 1 3
6 0 5 3 3 6 3 5 6 3
6 3 4 4 4 0 0 1 6 3
0 5 2 4 2 4 2 5 3 3
2 4 4 5 1 0 5 6 2 3
3 0 3 5 4 3 3 5 2 6
6 3 6 2 0 5 0 2 2 4
5 3 6 2 2 5 6 4 4 2
0 6 4 3 3 6 0 3 4 4
6 5 1 1 2 6 3 6 5 4
1 3 6 5 0 3 0 1 3 2
6 4 5 2 2 6 1...

output:

13
4 0
4 1
0 3
0 4
3 5
1 6
5 7
3 8
5 9
1 1
1 9
1 3
1 0
13
4 1
0 2
3 3
2 4
1 5
1 6
4 7
3 8
4 9
1 3
1 7
1 2
1 1
13
0 0
2 1
4 3
0 4
2 5
4 6
1 7
5 8
4 9
1 9
1 1
1 0
1 3
14
3 0
4 1
3 2
4 3
3 4
5 5
6 6
3 7
1 8
3 9
1 1
1 0
1 3
1 2
13
5 0
4 2
2 3
3 4
6 5
3 6
5 7
5 8
3 9
1 0
1 8
1 3
1 2
14
5 0
2 1
3 2
3 3
4 ...

result:

ok T=100000

Test #8:

score: 0
Accepted
time: 270ms
memory: 3552kb

input:

100000
0 1 3 6 5 0 5 1 1 4
2 3 7 4 3 2 2 3 7 7
6 4 5 6 7 0 1 7 0 1
1 6 1 2 5 2 5 6 0 2
6 3 0 4 4 5 4 0 4 1
6 4 7 4 3 0 3 5 3 7
0 4 0 0 7 0 3 1 2 4
1 2 6 2 1 0 3 1 2 5
7 3 7 4 1 6 1 3 1 5
7 1 6 4 6 5 2 2 1 5
4 1 7 3 0 3 4 1 3 6
7 5 3 3 1 6 3 5 5 1
2 5 5 7 1 2 5 6 1 6
0 0 7 2 0 0 4 7 1 1
0 5 4 1 7 1 1...

output:

13
0 1
2 2
5 3
5 4
0 5
5 6
0 7
1 8
4 9
1 2
1 3
1 7
1 1
14
1 0
2 1
6 2
3 3
3 4
2 5
2 6
3 7
7 8
7 9
1 2
1 3
1 1
1 0
14
5 0
3 1
4 2
5 3
7 4
0 5
1 6
7 7
0 8
1 9
1 2
1 3
1 1
1 0
14
0 0
5 1
0 2
1 3
5 4
2 5
5 6
6 7
0 8
2 9
1 3
1 1
1 2
1 0
13
5 0
2 1
3 3
4 4
5 5
4 6
0 7
4 8
0 9
1 0
1 3
1 9
1 1
14
5 0
3 1
6 ...

result:

ok T=100000

Test #9:

score: 0
Accepted
time: 273ms
memory: 3552kb

input:

100000
7 3 4 5 2 6 6 3 6 0
8 3 8 6 5 1 8 2 7 7
5 1 8 4 7 0 1 1 1 0
1 1 8 7 8 0 6 2 3 7
5 2 1 3 5 8 4 5 1 0
8 7 7 5 3 3 3 6 5 6
4 1 5 0 7 8 0 8 1 4
5 2 6 5 5 2 0 6 8 2
3 0 0 1 7 2 3 1 3 5
2 4 1 3 7 3 3 3 1 5
2 7 8 2 1 8 0 2 1 7
1 5 7 8 1 6 2 3 6 2
0 0 1 6 7 6 8 2 2 0
4 0 3 1 4 3 0 4 7 5
3 3 7 0 6 8 8...

output:

14
6 0
2 1
3 2
4 3
2 4
6 5
6 6
3 7
6 8
0 9
1 0
1 3
1 2
1 1
14
7 0
2 1
7 2
5 3
5 4
1 5
8 6
2 7
7 8
7 9
1 2
1 1
1 3
1 0
14
4 0
0 1
7 2
3 3
7 4
0 5
1 6
1 7
1 8
0 9
1 2
1 1
1 3
1 0
14
0 0
0 1
7 2
6 3
8 4
0 5
6 6
2 7
3 8
7 9
1 2
1 0
1 3
1 1
14
4 0
1 1
0 2
2 3
5 4
8 5
4 6
5 7
1 8
0 9
1 2
1 3
1 1
1 0
14
7 ...

result:

ok T=100000

Test #10:

score: 0
Accepted
time: 272ms
memory: 3556kb

input:

100000
7 8 0 3 2 6 7 9 8 7
7 8 8 5 0 0 6 8 7 7
6 6 0 8 8 9 9 2 1 8
4 7 7 8 2 1 1 3 5 4
1 6 9 6 6 4 0 5 0 2
7 1 7 1 1 2 9 8 5 7
5 3 6 6 1 1 8 4 5 8
4 5 3 0 9 2 8 5 5 4
0 4 9 2 1 4 1 4 0 1
3 4 7 9 0 8 6 5 8 5
4 1 2 1 0 0 2 0 4 9
2 9 0 9 5 7 4 7 6 5
9 3 4 5 9 6 3 2 0 2
3 2 3 4 7 4 6 6 0 7
7 1 5 9 5 6 1...

output:

13
6 0
7 1
2 3
2 4
6 5
7 6
9 7
8 8
6 9
1 9
1 1
1 0
1 3
14
6 0
7 1
7 2
4 3
0 4
0 5
6 6
8 7
7 8
7 9
1 2
1 0
1 3
1 1
13
5 0
5 1
7 3
8 4
9 5
9 6
2 7
1 8
7 9
1 1
1 9
1 3
1 0
14
3 0
6 1
6 2
7 3
2 4
1 5
1 6
3 7
5 8
4 9
1 3
1 2
1 1
1 0
14
0 0
5 1
8 2
5 3
6 4
4 5
0 6
5 7
0 8
2 9
1 2
1 3
1 1
1 0
14
6 0
0 1
6 ...

result:

ok T=100000

Test #11:

score: 0
Accepted
time: 274ms
memory: 3576kb

input:

100000
0 8 3 9 3 7 10 1 5 1
7 7 2 3 5 7 4 5 2 6
6 1 7 7 6 3 4 5 10 7
7 3 3 8 9 0 1 8 1 5
0 6 1 0 5 2 0 4 7 3
9 7 7 3 1 7 8 10 8 7
4 7 3 7 0 2 2 10 0 10
8 9 5 1 4 7 4 6 4 9
1 1 7 7 8 5 7 5 3 2
3 6 6 8 4 5 5 10 3 10
10 1 7 5 1 5 6 5 9 0
9 1 0 0 0 3 6 1 0 0
5 9 9 8 10 8 1 1 1 4
2 5 10 5 7 3 7 2 4 6
1 8...

output:

13
7 1
2 2
8 3
3 4
7 5
10 6
0 7
5 8
1 9
1 2
1 3
1 7
1 1
14
6 0
6 1
1 2
2 3
5 4
7 5
4 6
5 7
2 8
6 9
1 3
1 1
1 2
1 0
14
5 0
0 1
6 2
6 3
6 4
3 5
4 6
5 7
10 8
7 9
1 1
1 0
1 3
1 2
14
6 0
2 1
2 2
7 3
9 4
0 5
1 6
8 7
1 8
5 9
1 3
1 2
1 1
1 0
13
5 1
0 2
0 3
4 4
2 5
0 6
3 7
7 8
3 9
1 4
1 7
1 2
1 1
14
8 0
6 1
...

result:

ok T=100000

Test #12:

score: 0
Accepted
time: 338ms
memory: 3584kb

input:

100000
494719969 120370150 440274545 51278543 770105708 138663251 867692060 230246532 162623412 131761825
16498099 70750104 350416959 359532393 346253463 539196901 104480711 629723297 27266106 267471731
320561715 423589912 850677494 604957917 815663121 8935553 252297110 812216267 821793396 495865924...

output:

14
494719968 0
120370149 1
440274544 2
51278542 3
770105708 4
138663251 5
867692060 6
230246532 7
162623412 8
131761825 9
1 2
1 3
1 1
1 0
14
16498098 0
70750103 1
350416958 2
359532392 3
346253463 4
539196901 5
104480711 6
629723297 7
27266106 8
267471731 9
1 3
1 2
1 1
1 0
14
320561714 0
423589911 1...

result:

ok T=100000

Test #13:

score: -100
Memory Limit Exceeded

input:

100000
1 0 0 0 0 0 738556701 0 0 0
0 376417170 0 0 0 1 0 0 0 0
0 0 0 169526540 0 1 0 0 0 0
0 0 1 0 0 0 0 0 822697278 0
0 0 0 0 121828077 0 0 0 1 0
0 994528277 0 0 0 0 0 0 0 1
0 0 0 0 0 0 1 0 0 771142048
0 0 0 0 0 77945594 0 0 1 0
1 0 0 0 963629977 0 0 0 0 0
0 0 0 1 0 805871384 0 0 0 0
0 0 0 0 306368...

output:


result: