Cod sursa(job #2074351)
| Utilizator | Data | 24 noiembrie 2017 15:19:47 | |
|---|---|---|---|
| Problema | Transport | Scor | 0 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.56 kb |
#include <fstream>
using namespace std;
ifstream in("bere.in");
ofstream out("bere.out");
int v[40000];
int main()
{
int n,k,i,a,b,r,pas;
in>>n>>k;
for(i=1; i<=n; i++)
{
in>>v[i];
v[n+i]=v[i];
}
for(i=1; i<=2*n; i++)
v[i]+=v[i-1];
for(i=1; i<=k; i++)
{
in>>a>>b;
r=a-1;
pas=1<<14;
while(pas)
{
if(r+pas<=n+a-1&&v[r+pas]-v[a-1]<=b)
r+=pas;
pas/=2;
}
out<<r-a+1<<'\n';
}
return 0;
}
