Submission #1279546

#TimeUsernameProblemLanguageResultExecution timeMemory
1279546SugarCubes69Triple Peaks (IOI25_triples)C++20
16.29 / 100
13 ms37220 KiB
//orz Dominater069

#include <bits/stdc++.h>
using namespace std;
typedef long long int ll;

long long count_triples(std::vector<int> h) {
    ll ans = 0;
    ll N = h.size();

    //i,j,k
    for(int i=0;i<N;i++){
      ll j = i+h[i];if(j>=N) continue;

      ll k = j-h[j];
      if(k>=0) ans += (i+h[k]==k);

      if(i+h[j]==j-h[j]) continue;
      k = i+h[j];
      if(k<N) ans += (j-h[k]==k);
    }
    for(int j=0;j<N;j++){
      ll i = j-h[j];if(i<0) continue;

      ll k = j-h[i];
      if(k>=0) ans += (i+h[k]==k);

      if(i+h[i]==j-h[i]) continue;
      k = i+h[i];
      if(k<N) ans += (j-h[k]==k);
    }
    return ans;
}
std::vector<int> construct_range(int M, int K) {
    vector<int> res; res.push_back(1);
    for (int i = 1; i < M; i ++) res.push_back(i);
    return res;
}


/*void run_part1() {
  int N;
  assert(1 == scanf("%d", &N));
  std::vector<int> H(N);
  for (int i = 0; i < N; i++)
    assert(1 == scanf("%d", &H[i]));
  fclose(stdin);

  long long T = count_triples(H);

  printf("%lld\n", T);
  fclose(stdout);
}

void run_part2() {
  int M, K;
  assert(2 == scanf("%d %d", &M, &K));
  fclose(stdin);

  std::vector<int> H = construct_range(M, K);

  int N = H.size();
  printf("%d\n", N);
  for (int i = 0; i < N; i++)
    printf("%d%c", H[i], " \n"[i + 1 == N]);
  fclose(stdout);
}


int main() {
  int part;
  assert(1 == scanf("%d", &part));
  if (part == 1)
    run_part1();
  else if (part == 2)
    run_part2();

  return 0;
}*/
#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...