Abakus Okruzno 2016 B3

Pitanje ili opis problema

Pokusavao sam da uradim zadatak “Abakus” sa okruznog 2016te godine sa idejom da pokusam da svaku grupu “postavim” u jedan od 10 brojeva iz intervala [0,9] i onda popravljam vrednosti, uzeo sam u obzir i mogucnost da ne treba nijednu grupu “postavljati” vec samo menjati vrednost brojeva. Medjutim, gore opisano resenje mi prolazi za samo 2 test primera (1 i 7) dok za ostale daje WA. Nisam uspeo da smislim neki test primer gde ovo ne radi, pa bih zamolio nekog da mi pomogne … ili bar da mi pokaze gde mogu da nadjem resenje, kodove takmicara sa tog takmicenja ili cak samo test primere jer nista od toga nisam uspeo da nadjem ni na petlji ni na sajtu Racunarske Gimnazije.

Link ka zadatku ili odgovarajućoj stranici

https://petlja.org/BubbleBee/r/Problems/2016-okruzno-ss-abakus

Kod:

#include <bits/stdc++.h>

using namespace std;

vector<pair<int, int> > vec[1010];
int n, c1;
int p[1010],a[1010],b, m;
int ans;

int diff(int a, int b){
return min(10-max(a,b)+min(a,b), max(a,b)-min(a,b));
}

int main()
{
ios_base::sync_with_stdio(0);
cin >> n >> c1;
for(int i = 0; i < n; ++i){
cin >> p[i];
m = max(m, p[i]);
}
for(int i = 0; i < n; ++i){
cin >> a[i];
}
for(int i = 0; i < n; ++i){
cin >> b;
vec[p[i]-1].push_back({a[i], b});
}
for(int e = 0; e < m; ++e){
int tmpmin = 0;
if(!vec[e].size()) continue;
for(int i = 0; i < vec[e].size(); ++i){
tmpmin += diff(vec[e][i].first, vec[e][i].second);
}
for(int j = 0; j < 10; ++j){
int tmp = c1;
for(int i = 0; i < vec[e].size(); ++i){
tmp += diff(vec[e][i].second, j);
}
tmpmin = min(tmpmin, tmp);
}
//cout << tmpmin << ‘\n’;
ans += tmpmin;
}
cout << ans << ‘\n’;
/8 3
6 5 6 5 5 6 1 2
5 1 5 2 3 5 8 0
0 1 0 2 3 8 4 8
/
return 0;
}
//kraj koda

Hvala,
Momcilo Tosic

Ne znam tacno u cemu je problem, nesto je sigurno do implementacije jer je ideja dobra. Probao sam i long long umesto int ali nije to problem.
Evo ti moje resenje: https://ideone.com/Op6sOL

Naso sam problem, stavio si nizove a[] i p[] duzine 1010 dok mogu da budu i do 10^6. Mozda si pobrkao sa n sa m

1 Like

Hahahahah, hvala puno :slight_smile: jesam pomesao n sa m