Submission #134091

#TimeUsernameProblemLanguageResultExecution timeMemory
134091wzyBrunhilda’s Birthday (BOI13_brunhilda)C++11
100 / 100
460 ms118776 KiB
#include <bits/stdc++.h> using namespace std; const int N = 100002; #define pii pair<int,int> const int MX = 10000005; int primes[N] ; int m , q; int dp[MX]; int adj[MX]; int vl[MX]; int dq[MX]; int currx = -1; // valores formam sequencia (0 , 1 , 2, 3 ,...) // pega o menor multiplo menor que i int32_t main(){ scanf("%d%d" , &m , &q); for(int i = 0 ; i < MX ;i ++){ dp[i] = 1000000000; adj[i] = -1; dq[i] = -1; } for(int i = 0 ; i < m ; i ++){ scanf("%d" , &primes[i]); vl[++currx] = primes[i]; adj[currx] = dq[0]; dq[0] = currx; } dp[0] = 0; int curr = 0; for(int i = 0 ; i < MX ; i ++){ int w = dq[i]; while(w != -1){ int u = i + vl[w]; curr = max(curr, i+1); curr = min(curr , MX - 1); // if(i < 8){ // cout<<i<<" " <<w <<" " << u <<endl; // } for(int j = curr; j < min(u , MX) ; j++){ dp[j] = dp[i] + 1; } curr = max(curr, u); curr = min(curr , MX - 1); int wx = adj[w]; if(u < MX){ adj[w] = dq[u]; dq[u] = w; } w = wx; } } for(int i = 0 ; i < q; i ++){ int x; scanf("%d" , &x); int u = dp[x]; if(u >= 1000000000){ printf("oo\n"); } else{ printf("%d\n" , u); } } }

Compilation message (stderr)

brunhilda.cpp: In function 'int32_t main()':
brunhilda.cpp:16:7: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
  scanf("%d%d" , &m , &q);
  ~~~~~^~~~~~~~~~~~~~~~~~
brunhilda.cpp:23:8: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   scanf("%d" , &primes[i]);
   ~~~~~^~~~~~~~~~~~~~~~~~~
brunhilda.cpp:54:8: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   scanf("%d" , &x);
   ~~~~~^~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...