#include<bits/stdc++.h> #include "dzilib.h" using namespace std; int znajdz(int factors[], vector<int> &odpowiedzi, int k, int n) { for (int i = 1; i <= n-k+1; i++) { int j; for (j = 0; j < k; j++) if (factors[i + j] != odpowiedzi[j]) break; if (j == k) return i; } return -1; } int main() { ios_base::sync_with_stdio(false); cin.tie(0); int n = GetN(); int t = GetT(); int q = GetQ(); int c = GetC(); int factors[n+10]; for(int i=1;i<=n;i++) factors[i] = 0; for (int i = 1; i <= n; ++i) { for (int j = i; j <= n; j += i) factors[j] ++; } q /= t; while(t--) { vector<int> odpowiedzi; for (int i = 0; i < q; i++) odpowiedzi.push_back(Ask(i)); Answer(znajdz(factors, odpowiedzi, odpowiedzi.size(), n)); } return 0; }
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 | #include<bits/stdc++.h> #include "dzilib.h" using namespace std; int znajdz(int factors[], vector<int> &odpowiedzi, int k, int n) { for (int i = 1; i <= n-k+1; i++) { int j; for (j = 0; j < k; j++) if (factors[i + j] != odpowiedzi[j]) break; if (j == k) return i; } return -1; } int main() { ios_base::sync_with_stdio(false); cin.tie(0); int n = GetN(); int t = GetT(); int q = GetQ(); int c = GetC(); int factors[n+10]; for(int i=1;i<=n;i++) factors[i] = 0; for (int i = 1; i <= n; ++i) { for (int j = i; j <= n; j += i) factors[j] ++; } q /= t; while(t--) { vector<int> odpowiedzi; for (int i = 0; i < q; i++) odpowiedzi.push_back(Ask(i)); Answer(znajdz(factors, odpowiedzi, odpowiedzi.size(), n)); } return 0; } |