Submission #1307815

#TimeUsernameProblemLanguageResultExecution timeMemory
1307815exoworldgdTriple Peaks (IOI25_triples)C++20
4.95 / 100
2094 ms34792 KiB
#include <bits/stdc++.h>
#define exoworldgd cin.tie(0)->sync_with_stdio(0),cout.tie(0)
using namespace std;
using ll=long long;
ll count_triples(vector<int>h){
    int n=h.size(),sq=sqrt(n)+1;
    ll ans=0;
    vector<int>pos[n];
    for(int i=0;i<n;i++)pos[h[i]].push_back(i);
    for(int v=1;v<n;v++){
        if(v<=sq){
            for(int i:pos[v])for(int j:pos[v])if(i<j){
                int k=j+v;
                if(k<n){
                    vector<int>a={h[i],h[j],h[k]},b={j-i,k-i,k-j};
                    sort(a.begin(),a.end()),sort(b.begin(),b.end()),ans+=a==b;
                }
            }
        }else{
            for(int i=0;i<n;i++){
                int j=i+v,k=i+2*v;
                if(k<n){
                    vector<int>a={h[i],h[j],h[k]},b={v,2*v,v};
                    sort(a.begin(),a.end()),sort(b.begin(),b.end()),ans+=a==b;
                }
            }
        }
    }
    return ans;
}
vector<int>construct_range(int m,int k){
    vector<int>res;
    int pat[]={1,2,1,3,2,1,4,3,2,1},sz=10;
    for(int i=0;i<m;i++)res.push_back(pat[i%sz]);
    return res;
}
#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...