Afişează mesaje
|
Pagini: [1]
|
6
|
infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: 399 Sum2
|
: Martie 03, 2011, 15:29:04
|
Eu tot pun intr-un deque pana ajung la dimensiunea U si dupa aceea tot extrag primu element din deque si inserez la final mai departe si fac sp[Q.back() ] - sp[Q.front() - 1] , unde sp e vectorul de sume partiale..si iau 50 de puncte. Cred ca la un moment dat o sa aiba deque-ul doar dimensiunea U ..cum pot face fara sa parcurg deque-ul ?
|
|
|
8
|
infoarena - concursuri, probleme, evaluator, articole / Informatica / Răspuns: SORT din STL
|
: Februarie 04, 2011, 15:51:38
|
Daca imi declar un vector<vector<int> > sol;
vectorul initial arata asa cod: 4 6 2 2 1 3 3 6 5
dupa ce am facut sort(sol[ i ].begin(), sol[ i ].end(), cmp) am sortat elemente de pe fiecare linie unde cmp este cod:
bool cmp(const int x, const int y) { return x < y; }
2 4 6 1 2 3 3 6 5
si acum vreau sa sortez dupa dupa elementul de pe prima linie si va arata asa cod: 1 2 3 2 4 6 3 6 5 cum as putea sa fac folosind sort din STL ? Multumesc anticipat !
|
|
|
9
|
infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: 510 Retele
|
: Februarie 04, 2011, 15:03:19
|
Cum pot sa folosesc sort din STL ca sa sortez liniile dupa primul element un vector<vector<int> > sol ? Initial am sortat cu sort( sol[i ].begin(), sol[i ].end(), cmp); si acuma ca am elementele de pe linii sortate si vreau sa sortez dupa primul element liniile ..am incercat sort( sol.begin(), sol.end(), cmp) si nu merge.. cum as putea face ?
[Editat de admin] Cand scrii "[i ]" e bine sa pui un spatiu deoarece forumu considera ca vrei ca de acolo sa scrii text italic.
|
|
|
11
|
infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: 484 Numere 5
|
: Martie 28, 2010, 14:19:57
|
Nu intelg de ce la testele 5, 7 si 8 primesc Memory limit exceeded ca eu am impresia ca ma incadrez in memorie <code> #include<fstream> using namespace std;
ifstream fin("numere5.in"); ofstream fout("numere5.out");
bool a[500004];
int main() { long c, i, n, b; fin>>n; b=n*n; if(b>500003) b=500003; for(i=1; i<=n*n; i++) { fin>>c; if(c<=500003) a[c]=true; } fin.close(); for(i=1; i<=b; i++) if(a[i]==0) { fout<<i<<" "; i=n*n+3; } for(i=b; i>0; i--) if(a[i]==0) { fout<<i; i=0; } fout.close(); return 0; } </code> Multumesc anticipat pentru ajutor! Editat de moderator: foloseste tagurile [ code] si [ /code] cand postezi cod, nu <code> </code>.
|
|
|
12
|
infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: 841 Bete2
|
: Aprilie 10, 2009, 22:58:35
|
Am facut sortare rapida si m-am gandit sa aplic cautarea binara dar obtin doar 40 de puncte deoarece pe celelalte 6 teste obtin raspuns incorect. Ma ajutati va rog in depistarea greselii mele ? //quicksort x=0; for(i=2; i<n; i++) { for(k=i-1; k>=0; k--) if(a[k]+a[k]>=a[i]) {
st=0; dr=k;
int mij1=-3200;
while(st<dr) { mij=(st+dr)/2;
if(mij==mij1) break;
if(a[i]-a[k]==a[mij]) x++;
else if(a[mij]>a[i]-a[k]) dr=mij; else st=mij; mij1=mij;
} } }
Editat de admin: Foloseste tagul "code" cand postezi surse.
|
|
|
|