제출 #1338657

#제출 시각아이디문제언어결과실행 시간메모리
1338657khanhphucscratch3개의 봉우리 (IOI25_triples)C++20
6 / 100
19 ms2748 KiB
#include "triples.h"
#include<bits/stdc++.h>
using namespace std;

long long count_triples(vector<int> a) {
    /*Subtask 2*/
    long long ans = 0;
    int n = a.size();
    //Fix the last number
    for(int i = 1; i <= n; i++) a.push_back(0); //Avoid RTE
    for(int i = 0; i < n; i++){
        for(int j = i+2; j < min(n, i+15); j++){
            //Fix two ends
            //Case 1: a[i] = x, a[j] = y
            if(a[i]+a[j] == j-i && a[i+a[i]] == j-i) ans++;
            //Case 2: a[i] = y, a[j] = x
            if(a[i] != a[j] && a[i]+a[j] == j-i && a[i+a[j]] == j-i) ans++;
            //Case 3: a[i] = x+y, a[j] = x
            if(a[i] == j-i && a[j] < a[i] && a[i+a[j]] == (a[i]-a[j])) ans++;
            //Case 4: a[i] = x+y, a[j] = y
            if(a[i] == j-i && a[j] < a[i] && a[i+(a[i]-a[j])] == (a[i]-a[j]) && a[i] != a[j] * 2) ans++;
            //Case 5: a[i] = x, a[j] = x+y
            if(a[j] == j-i && a[i] < a[j] && a[i+a[i]] == (a[j]-a[i])) ans++;
            //Case 6: a[i] = y, a[j] = x+y
            if(a[j] == j-i && a[i] < a[j] && a[i+(a[j] - a[i])] == (a[j]-a[i]) && a[j] != a[i] * 2) ans++;

        }
    }
    return ans;
}

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