Submission #1013014

#TimeUsernameProblemLanguageResultExecution timeMemory
1013014AlmontherSticks (POI11_pat)C++98
100 / 100
154 ms23636 KiB
#include <bits/stdc++.h>
 
#define suiii ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);
#define ll long long
#define co cout<<
// #pragma GCC optimize("O3,Ofast,unroll-loops")
// #pragma GCC target("avx2,sse3,sse4,avx")
using namespace std;
//stuff
ll n;
pair<ll,ll>arr[3000001];
ll cnt=0;
void solve(){
    cin>>n;
    for(int i=1;i<=n;i++){
        ll x;
        cin>>x;
        for(int j=0;j<x;j++){
            ll y;
            cin>>y;
            arr[cnt]={y,i};
            cnt++;
        }
    }
    sort(arr,arr+cnt);
    for(int i=0;i<cnt;i++) swap(arr[i].first,arr[i].second);
    // for(int i=0;i<cnt;i++) co arr[i].second<<' ';
    // co '\n';
    ll i,j,k;
    j=k=0;
    while(arr[k].first==arr[j].first&&j<cnt) j++;
    i=j;
    while((arr[j].first==arr[i].first||arr[i].first==arr[k].first)&&i<cnt) i++;
    for(int l=i-1;i>=0;i--){
        if(arr[l].first==arr[j].first){
            j=l;
            break;
        }
    }
    for(int l=j-1;i>=0;i--){
        if(arr[l].first==arr[k].first){
            k=l;
            break;
        }
    }
    if(i>=cnt||j>=cnt||k>=cnt){
        co "NIE";
        return;
    }
    while(1){
        // co i<<' '<<j<<' '<<k<<'\n'<<arr[i].first<<' '<<arr[j].first<<' '<<arr[k].first<<'\n';
        ll a,b,c;
        a=arr[i].second;
        b=arr[j].second;
        c=arr[k].second;
        // co a<<' '<<b<<' '<<c<<"\nend\n";
        if(a+b>c&&a+c>b&&c+b>a){
            co arr[i].first<<' '<<a<<' '<<arr[j].first<<' '<<b<<' '<<arr[k].first<<' '<<c;
            return;
        }
        if(i+1>=cnt){
            co "NIE";
            return;
        }
        if(arr[i].first==arr[i+1].first){
            i++;
        }
        else if(arr[i+1].first==arr[j].first){
            j=i;
            i++;
        }
        else{
            k=j;
            j=i;
            i++;
        }
    }
}
 
int main()
{
    suiii
    int tt=1;
    // cin>>tt;
    while(tt--){
        solve();
    }
    return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...