Submission #1337862

#TimeUsernameProblemLanguageResultExecution timeMemory
1337862spuike3개의 봉우리 (IOI25_triples)C++20
14 / 100
2095 ms1980 KiB
#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define ull unsigned long long
#define ld long double
#define fi first
#define se second
long long count_triples(vector<int>a){
    ll ans=0, n=a.size(), ma=0, mi=n;
    bool bilo=0;
    for(int i=0;i<n;i++){
        ma=max(ma, (ll)a[i]);
        mi=min(mi, (ll)a[i]);
        if(i>0 && a[i]>a[i-1])bilo=1;
    }
    if(!bilo){
        for(int i=0;i<n;i++){
            if(i+a[i]<n){
                if(a[i+a[i+a[i]]]==a[i]-a[i+a[i]] || a[i+a[i]-a[i+a[i]]]==a[i]-a[i+a[i]])ans++;
            }
        }
        return ans;
    }
    for(int i=0;i<n-mi;i++){
        for(int k=i+2;k<n && k-i<=ma;k++){
            if(a[i]>k-i || a[k]>k-i || k-i<mi)continue;
            for(int j=i+1;j<k;j++){
                ll r1=j-i, r2=k-j, r3=k-i;
                ll r11=a[i], r12=a[j], r13=a[k];
                if(r11>r12)swap(r11, r12);
                if(r11>r13)swap(r11, r13);
                if(r12>r13)swap(r12, r13);
                if(r1>r2)swap(r1, r2);
                if(r1>r3)swap(r1, r3);
                if(r2>r3)swap(r2, r3);
                if(r1==r11 && r2==r12 && r3==r13)ans++;
            }
        }
    }
    return ans;
}
vector<int> construct_range(int M, int K){
    return{};
};
#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...