Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <fstream>
- #include <bits/stdc++.h>
- using namespace std;
- const int maxn=1000002;
- ifstream f("summit.in");
- ofstream g("summit.out");
- void citire(int a[],int s[],int n,int &m)
- {
- int stop=0;
- for(int i=1;i<=n;i++)
- {
- f>>a[i];
- if((long long)s[i-1] + a[i] < 2000000000)
- {
- s[i]=s[i-1]+a[i];
- }
- else
- {
- if(stop==0)
- {
- stop=1;
- m=i-1;
- }
- }
- }
- if(stop==0){m=n;}
- }
- int caut_binar(int a[],int st,int dr,int x)
- {
- if(st>dr)
- {
- return 0; ///pozitie pt inserare
- }
- int mij=(st+dr)/2; /// mij=st+(dr-st)/2;
- if(x>a[mij]){
- return caut_binar(a,mij+1,dr,x);
- }
- if(x<a[mij]){
- return caut_binar(a,st,mij-1,x);
- }
- if(a[mij]==x){
- return mij;
- }
- }
- int main()
- {
- int n,x,m;
- f>>n;
- static int a[1000010], s[1000010];
- s[0]=0;
- citire(a,s,n,m);
- for(int i=1;i<=n;i++)
- {
- g<<caut_binar(s,1,m,a[i])<<'\n';
- //cout<<upper_bound(a+1,a+n+1,x)-a;
- }
- // cout<<upper_bound(a+1,a+n+1,x)-a;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement