QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#466049#8813. Records in Chichén ItzáHKOI0#TL 0ms0kbC++171.7kb2024-07-07 15:15:472024-07-07 15:15:47

Judging History

This is the latest submission verdict.

  • [2024-07-07 15:15:47]
  • Judged
  • Verdict: TL
  • Time: 0ms
  • Memory: 0kb
  • [2024-07-07 15:15:47]
  • Submitted

answer

#include <bits/stdc++.h>
#define sz(v) (int)v.size()
#define all(v) v.begin(), v.end()

using namespace std;
using ll = long long;
using pii = pair<int, int>;

void solve() {
    int n,k;
    cin>>n>>k;
    vector<int> c(k);
    int idx=-1;
    for(int i=0;i<k;i++) {
        auto& x=c[i];
        cin>>x;
        if(x>=2) idx=i;
    }
    vector<tuple<int,int,int>> ans;
    if(idx!=-1) {
        for(int i=1;i<n;i++) ans.emplace_back(0,i,idx);
    }
    else {
        vector<int> p;
        for(int i=0;i<k;i++)
            if(c[i]==1) p.emplace_back(i);
        if(sz(p)>=n-1) {
            for(int i=1;i<n;i++) ans.emplace_back(0,i,p[i-1]);
        }
        else {
            vector<int> nums;
            vector<bool> used(k);
            for(auto i:p) {
                used[i]=true;
                for(int j=0;j<3;j++) nums.emplace_back(i);
            }
            for(int i=0;i<k;i++)
                if(!used[i]) nums.emplace_back(i);
            if(sz(nums)>n) nums.resize(n);
            for(int i=0;i<sz(nums)-1;i++) ans.emplace_back(i,i+1,nums[i]);
            ans.emplace_back(sz(nums)-2,0,sz(nums)-1);
            for(int i=sz(nums)-1;i<n;i+=k-1) {
                int ed=min(n,i+k-1)-1;
                ans.emplace_back(0,i,0);
                for(int j=i;j<ed;j++) ans.emplace_back(j,j+1,j-i+1);
                ans.emplace_back(ed,0,ed-i+1);
            }
        }
    }
    cout<<sz(ans)<<'\n';
    for(auto [u,v,w]:ans) cout<<u+1<<' '<<v+1<<' '<<w+1<<'\n';
}

signed main() {
#ifndef LOCAL
    ios::sync_with_stdio(false);
    cin.tie(nullptr);
#endif
    int T = 1;
    cin >> T;
    while (T--) solve();
    return 0;
}

詳細信息

Test #1:

score: 0
Time Limit Exceeded

input:

3
6
1 1 1 1 3 3
5
1 1 2 2 2
10
1 1 1 1 2 2 2 2 3 3

output:


result: