Mendo Judge Discussion Board - Forums
Search
Recent Topics
Hottest Topics
Member Listing
Back to home page
Zadaca Raspored
Forum Index
»
Задачи од национални натпревари
Author
Message
30/03/2012 00:43:27
Subject:
Zadaca Raspored
filip_bujaroski
Joined: 13/09/2010 21:58:57
Messages: 150
Location: Skopje
Offline
#include <iostream> #include <algorithm> #include <vector> #include <cmath> #include <math.h> using namespace std; int main() { int n,a,i,j,res=0; cin>>n; double b=0; int minn,max; cin>>minn>>max; vector<int>v; for(i=0;i<n;i++) { cin>>a; v.push_back(a); b+=a; } if(b/n<minn) { cout><<-1<<endl; return 0; } double x=b/n; if(x>max) { cout<<-1<<endl; return 0; } sort(v.begin(),v.end()); while(v[0]><minn) { int k=min(minn-v[0],v[n-1]-minn); v[0]+=k; v[n-1]-=k; res+=k; sort(v.begin(),v.end()); } while(v[v.size()-1]>max) { int k=min(v[n-1]-max,max-v[0]); v[0]+=k; v[n-1]-=k; res+=k; sort(v.begin(),v.end()); } // for(i=0;i<n;i++) // { // cout><<v[i]<<" "; // } cout<<res><<endl; return 0; }
Resenievo mi raboti za site osven za 16tiot test primer.
48 403085 403087
574924
768059
675023
642
507418
508926
470362
92361
95971
947077
796784
481451
452968
898078
745621
483847
305701
810115
465020
764725
264126
486467
35842
43441
320833
393032
258628
531741
2501
424997
160565
422701
66479
378553
963536
155
228269
356469
552822
372323
255659
77410
353138
271851
686585
588
280
594089
Moeto resenie vrakja: 5339292
Vo resenieto na test primerot vrakja: 5339248
Dali moze nekoj da mi objasni kade gresam?
Live to play, die for fun.
30/03/2012 16:00:22
Subject:
Re:Zadaca Raspored
MOI
Joined: 07/07/2010 16:31:48
Messages: 447
Offline
Не чини алгоритамот. Еве примерче:
3 90 100 10 140 140
Твојата програма печати 90. Точниот одговор е 80:
10 140 140 (почетна состојба)
50 100 140 (префрли 40 од група 2 во група 1)
90 100 100 (префрли 40 од група 3 во група 1)
30/03/2012 16:15:15
Subject:
Re:Zadaca Raspored
filip_bujaroski
Joined: 13/09/2010 21:58:57
Messages: 150
Location: Skopje
Offline
#include <iostream> #include <algorithm> #include <vector> #include <cmath> #include <math.h> using namespace std; int main() { int n,a,i,j,res=0,p=0; cin>>n; double b=0; int minn,max; cin>>minn>>max; vector<int>v; for(i=0;i<n;i++) { cin>>a; v.push_back(a); b+=a; if(v[i]<minn) { res+=minn-v[i]; } if(v[i]>max) { p+=v[i]-max; } } if(b/n<minn) { cout><<-1<<endl; return 0; } double x=b/n; if(x>max) { cout<<-1<<endl; return 0; } sort(v.begin(),v.end()); if(p>res) swap(p,res); cout<<res><<endl; return 0; }
eve go resenieto na zadacata ako nekoj go interesira
Mnogu polesno nego shto na pocetok razmisluvav...
Live to play, die for fun.
Forum Index
»
Задачи од национални натпревари
Go to:
Select a forum
Добродојдовте!
Општа дискусија
Задачи од национални натпревари
Задачи од меѓународни натпревари
Други задачи
Регионални натпревари
Државни натпревари
Македонски Олимпијади
Други натпревари
Pascal
C/C++
Јава
Други јазици
Powered by
JForum 2.1.8
©
JForum Team