Coada Coada vidă: p>u int C[1001], p, u; p = 1; u = 0; //coada e vidă int inserare(int C[], int p, int &u, int x) { if(u < l) //coada nu e plină { u++; C[u] = x; return 1; } return 0 } int extragere(int C[], int &p, int u, int &elemExtras) { if(p<=u) //coada nevidă { elemExtras = C[p]; p++; return 1; } return 0; } int main() { int l; cin >> l; inserare(C, p, u, 8); inserare(C, p, u, -2); inserare(C, p, u, 5); extragere(C, p, u, x); extragere(C, p, u, x); inserare(C, p, u, 10); extragere(C, p, u, x); }
Postări
- Solicitați un link
- Alte aplicații
4 6 2 5 8 1 3 7 Citim n. n=8. Intrăm în for. i=1. (1<8=>i≤n). Continuăm for-ul (s-a respectat condiția). Citim x. x=4. st=1, dr=cnt=0. (1>0=>st>dr). Nu intrăm în while (nu s-a respectat condiția). (1>0=>st>cnt). Intrăm în al doilea if (s-a respectat condiția). a[++cnt]=a[0+1]=a[1]=x=4. Postincrementăm i. (2<8=>i≤n). Continuăm for-ul (s-a respectat condiția). Citim x. x=6. st=1, dr=cnt=1. (1=1=>st≤dr). Intrăm în while (s-a respectat condiția). m=(st+dr)/2=(1+1)/2=2/2=1. (4<6=>a[1]<6=>a[m]<x). Intrăm în primul if (s-a respectat condiția). dr=m-1=1-1=0. (1=1=>st≤cnt). Nu intrăm în al doilea if (nu s-a respectat condiția). Intrăm în else. a[st]=a[1]=x=6. Postincrementăm i. (3<8=>i≤n). Continuăm for-ul (s-a respectat condiția). Citim x. x=2. st=1, dr=cnt=1. (1=1=>st≤dr). Intrăm în while (s-a respectat condiția). m=(st+dr)/2=(1+1)/2=2/2=1. (6>2=>a[1]≥2=>a[m]≥x). Nu intrăm în primul if (nu s-a respectat condiți
- Solicitați un link
- Alte aplicații
#include <iostream> using namespace std; const int VALMAX = 1000000; bool atins[1 + VALMAX]; int last[1 + VALMAX]; int a, b; int frecvA = 0; int frecvB = 0; void restaurareSolutie(int poz) { if (poz == -1) return; if (poz - last[poz] == a) frecvA++; else if (poz - last[poz] == b) frecvB++; restaurareSolutie(last[poz]); } int main() { int n; cin >> n >> a >> b; atins[0] = true; last[0] = -1; for (int i = 0; i <= n; i++) { if (atins[i]) { if (i + a <= n) { atins[i + a] = true; last[i + a] = i; } } } for (int i = 0; i <= n; i++) { if (atins[i]) { if (i + b <= n && !atins[i + b]) { atins[i + b]