Pagini recente » Cod sursa (job #2611024) | Cod sursa (job #1646315) | Cod sursa (job #2504218) | Cod sursa (job #283751) | Cod sursa (job #2861952)
#include <fstream>
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
ifstream f("niceset.in");
ofstream g("niceset.out");
int tomb[100001];
int kezd[100001];
vector<int> v;
int n;
unsigned long long k;
unsigned long long maxm=1;
int tavszamolas(int index)
{
int db=0;
unsigned long long osszeg=0;
int belsoindex=index+1;
while(osszeg<=k){
db++;
if(belsoindex>=n){
return db;
}
for (int i=belsoindex-1;i>=index;i--){
osszeg+=v[belsoindex]-v[i];
}
belsoindex++;
}
//cout<<osszeg<<endl;
return db;
}
int main()
{
bool egyes=true;
bool harmas=true;
bool kettes =true;
int egyesek=0;
int kettesek=0;
f >> n;
f >> k;
for (int i = 0; i < n; i++)
{
int a;
f >> a;
if(a!=1)
egyes=false;
if(a!=i+1)
harmas=false;
if(a!=1 && a!=2){
kettes=false;
}
if(a==1){
egyesek++;
}
else if(a==2){
kettesek++;
}
v.push_back(a);
}
if(egyes){
g<<n;
}
else if (kettes){
if(egyesek>kettesek){
g<<egyesek;
}
g<<kettesek;
}
else if (harmas){
unsigned long long osszeg = tavszamolas(0);
g<<osszeg;
}
else{
sort(v.begin(),v.end());
/*for (int i :v){
cout<<i<<" ";
}*/
//cout<<endl;
for (int i=0; i<n; i++)
{
unsigned long long osszeg = tavszamolas(i);
if(osszeg>maxm){
maxm=osszeg;
}
//cout<<osszeg<<" "<<v[i]<<endl;
}
g<<maxm;
}
g.close();
f.close();
}