Submission #1325742

#TimeUsernameProblemLanguageResultExecution timeMemory
1325742iamsazidhTriple Peaks (IOI25_triples)C++20
8 / 100
2095 ms1948 KiB
#include "triples.h"
//ᴇᴀᴄʜ ᴘᴇʀꜱᴏɴ ᴡɪʟʟ ᴏɴʟʏ ʜᴀᴠᴇ ᴡʜᴀᴛ ᴛʜᴇʏ ᴇɴᴅᴇᴀᴠᴏᴜʀᴇᴅ ᴛᴏᴡᴀʀᴅꜱ [53:39]
//Author: Sazid Hasan
#include <bits/stdc++.h>
using namespace std;

typedef long long              ll;
typedef double                 dl;
typedef vector<int>            vi;
typedef vector<vector<int>>    vii;
typedef vector<ll>             vl;
typedef vector<bool>           vb;
typedef pair<int,int>         pii;
typedef pair<ll, ll>          pll;

#define ff                first
#define ss                second
#define all(a)            a.begin(),a.end()
#define gcd(a,b)          __gcd(a,b)
#define lcm(a,b)          (a*(b/gcd(a,b)))
#define spc               " "


#ifdef ONLINE_JUDGE
    #define debarr(array)
    #define deb(x)
    #define del
#else
    #define debarr(array)  for(int w = 0; w < array.size(); w++) cerr << #array << "-" << w << " = " << array[w] << endl;
    #define deb(x)         cerr << #x << " = " << x << endl;
    #define del cerr << '\n';
#endif


const double PI =         acos(-1);
const int MOD =           1000000007;
const int inf =           (2147483647);

long long count_triples(std::vector<int> H) {
  int n = H.size();
  ll cnt = 0;
  // for(int a = 0; a < n; a++){
  //   int i, j, k;
  //   i = a, j = i+H[i], k = j<n ? i+H[j] : -1;
  //   if(k<n && k>=0 && H[k]==k-j && H[i]==j-i && H[j]==k-i) cnt++;
  //   i = a, j = i+H[i], k = j<n ? j+H[j] : -1;
  //   if(k<n && k>=0 && H[k]==k-i && H[i]==j-i && k-j==H[j]) cnt++;
  //   i = a, k = H[i]+i, j = k<n ? k-H[k] : -1;
  //   if(j<n && j>=0 && H[j]==j-i && H[i]==k-i && H[k]==j-k) cnt++;
  //   j = a, i = j-H[j], k = i>=0 ? j+H[i] : -1;
  //   if(k<n && k>=0 && H[k]==k-i && H[i]==k-j && H[j]==j-i) cnt++;
  //   i = a, k = i+H[i], j = k<n ? i+H[k] : -1;
  //   if(j<n && j>=0 && H[j]==k-j && H[i]==k-i && H[k]==j-i) cnt++;
  // }
  for(int i = 0; i < n; i++){
    for(int j = i+1; j < n; j++){
      for(int k = j+1; k < n; k++){
        vi a = {j-i, k-i, k-j};
        vi b = {H[i], H[j], H[k]};
        sort(all(a));
        sort(all(b));
        if(a==b) cnt++;
      }
    }
  }
  return cnt;
}

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...