Submission #1312934

#TimeUsernameProblemLanguageResultExecution timeMemory
1312934pedreitorzelda3개의 봉우리 (IOI25_triples)C++20
5.29 / 100
12 ms2332 KiB
#include<bits/stdc++.h>
using namespace std;

vector<int>construct_range(int M,int K){
    vector<int>a(M,0);
    a[M-1]=1;
    for(int i=M-2;i>=0;i--){
        a[i]=M-1-i;
    }return a;
}
bool check(int i1,int i2,int i3,vector<int>&H,set<tuple<int,int,int>>&s){
    vector<int>H_i = {H[i1],H[i2],H[i3]};
    sort(H_i.begin(),H_i.end());
    if(i3<i2)swap(i3,i2);
    if(i2<i1)swap(i2,i1);
    if(H_i[0]==i1&&H_i[1]==i2&&H_i[2]==i3){
        if(s.find({i1,i2,i3})!=s.end())return false;
        s.insert({i1,i2,i3});
        return true;
    }else return false;
}
long long count_triples(vector<int>H){
    set<tuple<int,int,int>>s;
    int n = H.size();
    int cant =0 ;
    for(int i=0;i<n;i++){
        for(int j=i+1;j<n;j++){//i+H[i],i-H[i],j+H[i],j-H[i]
            if(check(i,j,i+H[i],H,s)){
                cant++;
            }else if(check(i,j,i+H[j],H,s)){
                cant++;
            }else if(check(i,j,i-H[i],H,s)){
                cant++;
            }else if(check(i,j,i-H[j],H,s)){
                cant++;
            }else if(check(i,j,j+H[i],H,s)){
                cant++;
            }else if(check(i,j,j+H[j],H,s)){
                cant++;
            }else if(check(i,j,j-H[i],H,s)){
                cant++;
            }else if(check(i,j,j-H[j],H,s)){
                cant++;
            }
        }
    }return cant;
}
/*

si hay alguno q cuadra --> cuatro para un lado y simetrico y hecho, simulas
si ninguno cuadra-->

4--6----2

*/
#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...