Submission #1253260

#TimeUsernameProblemLanguageResultExecution timeMemory
1253260daniel920712Triple Peaks (IOI25_triples)C++20
18 / 100
43 ms2632 KiB
#include "triples.h"
#include <map>
#include <set>
using namespace std;
map < int , int > con;
set < int > can;
vector < int > tt;
int N;
int check(int a, int b,int c,int x,int y,int z)
{
    return a==x&&b==y&&c==z;
}
int check2(int a,int b,int c)
{
    if(c<a||c<b||c>=N) return 0;
    int x=tt[a];
    int y=tt[b];
    int z=tt[c];
    if(x>y) swap(x,y);
    if(y>z) swap(y,z);
    if(x>y) swap(x,y);
    return check(min(b-a,c-b),max(b-a,c-b),c-a,x,y,z);
}
long long count_triples(std::vector<int> H)
{
    long long ans=0;
    int i,j;
    N=H.size();
    tt=H;
    if(N<=5000)
    {
        for(i=0;i<N;i++)
        {
            for(j=i+1;j<N;j++)
            {
                can.clear();
                if(check2(i,j,i+tt[i])) can.insert(i+tt[i]);
                if(check2(i,j,i+tt[j])) can.insert(i+tt[j]);

                if(check2(i,j,j+tt[i])) can.insert(j+tt[i]);
                if(check2(i,j,j+tt[j])) can.insert(j+tt[j]);
                ans+=(long long) can.size();
            }
        }
    }
    return ans;
}

std::vector<int> construct_range(int M, int K) {
  return {1, 1, 1};
}
#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...