Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <fstream>
- using namespace std;
- ifstream f("matrice2.in");
- ofstream g("matrice2.out");
- int n,m,a[205][105],t,COL[105],ok;
- char S[105];
- int compara(int L1,int L2)
- {
- for(int i=1;i<=t;++i)
- if(a[L1][COL[i]]!=a[L2][COL[i]]) /// Cele doua linii nu sunt "egale"
- {
- if((S[i]=='C'&&a[L1][COL[i]]>a[L2][COL[i]])||(S[i]=='D'&&a[L1][COL[i]]<a[L2][COL[i]]))
- return 1; /// Cele doua linii nu sunt "egale" si trebuie inversate
- else
- return 0; /// Cele doua linii nu sunt "egale". dar nu trebuie inversate
- }
- return 0; /// Cele doua linii sunt "egale" si nu trebuie inversate
- }
- int main()
- {
- f>>n>>m;
- for(int i=1;i<=n;++i)
- for(int j=1;j<=m;++j)
- f>>a[i][j];
- int p;
- f>>p;
- char op;
- for(int kk=1;kk<=p;++kk)
- {
- f>>op;
- switch(op)
- {
- case 'S': /// Stergerea
- {
- int i,j;
- f>>i>>j;
- int k;
- f>>k;
- int I[k+1],V[k+1];
- char O[k+1];
- for(int ii=1;ii<=k;++ii)
- f>>I[ii]>>O[ii]>>V[ii];
- for(int L=i;L<=j;++L)
- {
- ok=1;
- for(int ii=1;ii<=k;ii++)
- switch(O[ii])
- {
- case '<':
- {
- if(a[L][I[ii]]>=V[ii])
- ok=0;
- break;
- }
- case '>':
- {
- if(a[L][I[ii]]<=V[ii])
- ok=0;
- break;
- }
- case '!':
- {
- if((a[L][I[ii]]==V[ii]))
- ok=0;
- break;
- }
- case '=':
- {
- if(a[L][I[ii]]!=V[ii])
- ok=0;
- break;
- }
- }
- if(ok)
- {
- if(L==n)
- --n;
- else
- {
- for(int i=L;i<n;++i)
- for(int j=1;j<=m;++j)
- a[i][j]=a[i+1][j];
- --n;
- }
- --L;
- --j;
- }
- }
- break;
- }
- case 'O': /// Sortarea
- {
- int i,j;
- f>>i>>j;
- f>>t;
- for(int ii=1;ii<=t;++ii)
- f>>COL[ii]>>S[ii];
- while(true)
- {
- bool isSorted=true;
- for(int L=i;L<j;++L)
- if(compara(L,L+1))
- {
- isSorted=false;
- for(int kkk=1;kkk<=m;++kkk)
- swap(a[L][kkk],a[L+1][kkk]);
- }
- if (isSorted) break;
- }
- break;
- }
- case 'A': /// Adaugarea
- {
- ++n;
- for(int jj=1;jj<=m;++jj)
- f>>a[n][jj];
- break;
- }
- }
- }
- g<<n<<'\n';
- for(int i=1;i<=n;++i)
- {
- for(int j=1;j<=m;++j)
- g<<a[i][j]<<' ';
- g<<'\n';
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement