Submission #1265471

#TimeUsernameProblemLanguageResultExecution timeMemory
1265471thenpcTriple Peaks (IOI25_triples)C++20
13.65 / 100
56 ms3516 KiB
#include <bits/stdc++.h>
#include "triples.h"
using namespace std;
#define ll long long
ll n,a[200005];

ll count_triples(vector<int> v){
  ll n=v.size();
  for(int i=1;i<=n;i++){
    a[i]=v[i-1];
  }
  ll ans=0;
  for(int i=1;i<=n;i++){
    ll x=i-a[i];
    if(x<=0){
      continue;
    }
    vector<int> u;
    if(2*a[x]!=a[i]){
      u.push_back(x+a[x]);
      u.push_back(i-a[x]);
    }
    else{
      u.push_back(x+a[x]);
    }
    for(int j=0;j<u.size();j++){
     
        ll b[4]={i-u[j],i-x,u[j]-x};
        ll c[4]={a[i],a[u[j]],a[x]};
        sort(b,b+3);
        sort(c,c+3);
        int sol=1;
        for(int l=0;l<3;l++){
          if(b[l]!=c[l]){
            sol=0;
          }
        }
        ans+=sol;
    }
  }
  return ans;
}
vector<int> construct_range(int m,int k){
  vector<int> h;
  int n=(m-1)/2;
  for(int i=1;i<=n;i++){
    h.push_back(i);
  }
  h.push_back(n+1);
  for(int i=n;i>=1;i--){
    h.push_back(i);
  }
  return h;
}
#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...