Submission #109521

#TimeUsernameProblemLanguageResultExecution timeMemory
109521TadijaSebezBulldozer (JOI17_bulldozer)C++11
0 / 100
34 ms504 KiB
#include <bits/stdc++.h> using namespace std; #define ll long long #define pb push_back #define mp make_pair #define ldb long double struct pt{ ll x,y,w;pt(){}pt(ll a, ll b):x(a),y(b){}}; pt operator - (pt a, pt b){ return pt(a.x-b.x,a.y-b.y);} ll cross(pt a, pt b){ return a.x*b.y-a.y*b.x;} ll dot(pt a, pt b){ return a.x*b.x+a.y*b.y;} ll sq(pt a){ return dot(a,a);} ldb abs(pt a){ return sqrt(sq(a));} struct line { pt v;ll c; line(){} line(pt a, pt b):v(b-a),c(cross(v,a)){} ll side(pt a){ return c-cross(v,a);} }; const int N=2050; pt pts[N]; int id[N]; ll cr[N],dt[N],ans; void Solve(int n) { ll mx=0,sum=0,mn=0; for(int i=1;i<=n;i++) { sum+=pts[id[i]].w; mx=max(mx,sum-mn); mn=min(mn,sum); } ans=max(ans,mx); } void Try(int n, line l) { for(int i=1;i<=n;i++) cr[i]=l.side(pts[i]),dt[i]=dot(pts[i],l.v),id[i]=i; sort(id+1,id+1+n,[&](int i, int j){ return mp(cr[i],dt[i])<mp(cr[j],dt[j]);}); Solve(n); sort(id+1,id+1+n,[&](int i, int j){ return mp(cr[i],-dt[i])<mp(cr[j],-dt[j]);}); Solve(n); } int main() { int n,i,j; scanf("%i",&n); for(i=1;i<=n;i++) scanf("%lld %lld %lld",&pts[i].x,&pts[i].y,&pts[i].w); for(i=1;i<=n;i++) for(j=i+1;j<=n;j++) Try(n,line(pts[i],pts[j])); printf("%lld\n",ans); return 0; }

Compilation message (stderr)

bulldozer.cpp: In function 'int main()':
bulldozer.cpp:49:7: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
  scanf("%i",&n);
  ~~~~~^~~~~~~~~
bulldozer.cpp:50:25: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
  for(i=1;i<=n;i++) scanf("%lld %lld %lld",&pts[i].x,&pts[i].y,&pts[i].w);
                    ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...