Submission #152347

#TimeUsernameProblemLanguageResultExecution timeMemory
152347Breno_XDUzastopni (COCI17_uzastopni)C++14
72 / 80
74 ms504 KiB
#include <bits/stdc++.h> using namespace std; typedef long long int ll; int n; ll sum; ll v1, v2; ll gauss(ll k){ if(k%2==0) return (k+1) * (k/2); else return k * ((k+1)/2); } void buscabin(int x){ ll ini = 1, meio, fim = 10e10; v1 = -1, v2 = -1; while(ini<=fim){ meio = (ini+fim)/2; //cout << "ini: " << ini << " fim: " << fim << " meio: " << meio << "\n"; if(meio-x < 0){ ini = meio+1; continue; } ll sum = gauss(meio) - gauss(meio-x); if(sum == n){ v1 = meio-x+1; v2 = meio; break; } if(sum > n) fim = meio-1; if(sum < n) ini = meio+1; } } int main(){ cin >> n; for(int i=2; i<=500000; i++){ buscabin(i); if(v1 != -1 && v1!=0) cout << v1 << " " << v2 << "\n"; } return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...