Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <fstream>
- #include <cstring>
- #define LL long long
- #define INF 9223372036854775804 //LONGLONGMAX
- using namespace std;
- ifstream fin("pic.in");
- ofstream fout("pic.out");
- int cer, n, v[51][51], A[51][51];
- LL ans1=-1;
- void solve1();
- void solve2();
- LL binSearch(int st, int dr);
- int main()
- {
- fin>> cer >> n;
- if(cer==1)
- solve1();
- else
- solve2();
- return 0;
- }
- int maxim(int st, int dr)
- {
- int maxx=0;
- for(int i=st; i<=dr; i++)
- if(v[dr][i]>maxx)
- maxx=v[dr][i];
- return maxx;
- }
- void update(int a)
- {
- for(int i=1; i<=a; i++)
- v[a][i]-=A[a][i];
- }
- bool check(int a)
- {
- LL ans;
- memset(A, 0, sizeof(A));
- A[1][1]=a;
- for(int i=1; i<=n; i++)
- {
- int maxx=maxim(1,i);
- ans+=maxx;
- for(int j=1; j<=i; j++)
- {
- A[i][j]+=maxx;
- A[i+1][j]=(A[i][j]-v[i][j]+1)/2;
- A[i+1][j+1]=(A[i][j]-v[i][j])/2;
- }
- }
- for(int i=1; i<=n; i++)
- if(A[n][i]<v[n][i])
- return 0;
- return 1;
- }
- LL binSearch(LL st, LL dr)
- {
- LL mid=(st+dr)/2;
- int verif = check(mid);
- if(verif==1)
- {
- binSearch(st,mid);
- ans1=mid;
- }
- else if(check(mid)==0)
- binSearch(mid,dr);
- }
- void solve2()
- {
- LL s=0, ans2=0;
- for(int i=1; i<=n; i++)
- {
- for(int j=1; j<=i; j++)
- {
- fin >> v[i][j];
- s+=v[i][j];
- }
- }
- /*for(int i=1; i<=n; i++)
- {
- update(i);
- //adaug timpul maxim necesar umplerii tuturor paharelor de pe rand
- int maxx=maxim(1,i);
- ans1+=(maxx*i);
- //scad din timp timpul in care s-a turnat in paharul cel mai mare
- //ans1-=A[i][maxx];
- //adaug apa in pahare si scurg apa pe urmatorul rand
- for(int j=1; j<=i; j++)
- {
- A[i][j]+=maxx;
- A[i+1][j]+=((A[i][j]-v[i][j]+1)/2);
- A[i+1][j+1]+=((A[i][j]-v[i][j])/2);
- }
- }*/
- binSearch(1LL,INF);
- ans2=ans1-s;
- fout << ans1 <<" "<<ans2;
- }
- void solve1()
- {
- int s=0, smax=0, a, ans=0;
- for(int i=1; i<=n; i++)
- {
- s=0;
- for(int j=1; j<=i; j++)
- {
- fin >> a;
- s+=a;
- }
- if(s>smax)
- {
- smax=s;
- ans=i;
- }
- }
- fout << ans;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement