fork download
  1. #include<iostream>
  2. #include<stdio.h>
  3. #include<string.h>
  4. using namespace std;
  5.  
  6.  
  7. struct pile{
  8. char a[2];
  9. pile *pnext;
  10. }*phead,pold,*pnewn,*pcheck1;
  11. struct list{
  12. char a[2];
  13. int count;
  14. list *lnext;
  15. list *lprev;
  16. pile *pilehead;}*lhead,*lold,*lnewn,*lcheck1;
  17.  
  18. int mainlogic(){
  19. int i,j=0;
  20.  
  21. list *lcheck=lhead->lnext,*temp;
  22.  
  23. while(lcheck->lnext){
  24. if(j>2){
  25. lcheck1=lcheck;
  26. for(i=0;i<3;i++)
  27. lcheck1=lcheck1->lprev;
  28.  
  29. if(!lcheck1->pilehead)
  30. { if(lcheck->a[0]==lcheck1->a[0] || lcheck->a[1]==lcheck1->a[1])
  31. {
  32. lcheck1->count++;
  33. pnewn=new pile;
  34. strcpy(pnewn->a,lcheck->a);
  35. pnewn->pnext=NULL;
  36. temp=lcheck->lprev;
  37. temp->lnext=lcheck->lnext;
  38. (lcheck->lnext)->lprev=temp;
  39. delete lcheck;
  40. lcheck1->pilehead=pnewn;
  41. mainlogic();
  42.  
  43. }
  44.  
  45. }
  46. else{
  47. pile *pcheck=lcheck1->pilehead;
  48. while(pcheck->pnext!=NULL)
  49. pcheck=pcheck->pnext;
  50. if(pcheck->a[0]==lcheck->a[0] || pcheck->a[1]==lcheck->a[1]){
  51. lcheck1->count++;
  52. pnewn=new pile;
  53. strcpy(pnewn->a,lcheck->a);
  54. pnewn->pnext=NULL;
  55. pcheck->pnext=pnewn;
  56. temp=lcheck->lprev;
  57. temp->lnext=lcheck->lnext;
  58. (lcheck->lnext)->lprev=temp;
  59. delete lcheck;
  60. mainlogic();
  61.  
  62. }
  63. }
  64. }
  65. if(j>0){
  66. lcheck1=lcheck;
  67.  
  68. lcheck1=lcheck1->lprev;
  69.  
  70. if(!lcheck1->pilehead)
  71. { if(lcheck->a[0]==lcheck1->a[0] || lcheck->a[1]==lcheck1->a[1])
  72. {
  73. lcheck1->count++;
  74. pnewn=new pile;
  75. strcpy(pnewn->a,lcheck->a);
  76. pnewn->pnext=NULL;
  77. lcheck1->pilehead=pnewn;
  78. temp=lcheck->lprev;
  79. temp->lnext=lcheck->lnext;
  80. (lcheck->lnext)->lprev=temp;
  81. delete lcheck;
  82. mainlogic();
  83. }
  84.  
  85. }
  86. else{
  87. pile *pcheck=lcheck1->pilehead;
  88. while(pcheck->pnext!=NULL)
  89. pcheck=pcheck->pnext;
  90. if(pcheck->a[0]==lcheck->a[0] || pcheck->a[1]==lcheck->a[1]){
  91. lcheck1->count++;
  92. pnewn=new pile;
  93. strcpy(pnewn->a,lcheck->a);
  94. pnewn->pnext=NULL;
  95. pcheck->pnext=pnewn;
  96. temp=lcheck->lprev;
  97. temp->lnext=lcheck->lnext;
  98. (lcheck->lnext)->lprev=temp;
  99. delete lcheck;
  100. mainlogic();
  101.  
  102. }
  103. }
  104. }
  105.  
  106. lcheck=lcheck->lnext;
  107. j++;}
  108.  
  109. }
  110.  
  111. int main(){
  112. int n,c;
  113. lhead=new list;
  114.  
  115. cin>>lhead->a;
  116.  
  117. while(lhead->a[0]!='#')
  118. {cin.ignore();
  119. lhead->count=1;
  120. lhead->pilehead=NULL;
  121. lhead->lnext=NULL;
  122. lold=lhead;
  123. lold->lprev=NULL;
  124. c=n=0;
  125. while(c!=51)
  126. {
  127. lnewn = new list;
  128. cin>>lnewn->a;
  129. lold->lnext=lnewn;
  130. lnewn->count=1;
  131. lnewn->lnext=NULL;
  132. lnewn->pilehead=NULL;
  133. lnewn->lprev=lold;
  134. lold=lnewn;
  135. c++; }
  136.  
  137. mainlogic();
  138.  
  139. lold=lhead;
  140. while(lold->lnext!=NULL)
  141. {
  142. n++;
  143. lold=lold->lnext;
  144. }
  145. cout<<n<<" piles remaining: ";
  146. lold=lhead;
  147. while(lold->lnext!=NULL)
  148. {
  149. cout<<lold->count<<" ";
  150. }
  151. cout<<endl;
  152.  
  153. cin>>lhead->a;
  154. }
  155. }
Runtime error #stdin #stdout #stderr 0s 3476KB
stdin
QD AD 8H 5S 3H 5H TC 4D JH KS 6H 8S JS AC AS 8D 2H QS TS 3S AH 4H TH TD 3C 6S
8C 7D 4C 4S 7S 9H 7C 5D 2S KD 2D QH JD 6D 9D JC 2C KH 3D QC 6C 9S KC 7H 9C 5C
AC 2C 3C 4C 5C 6C 7C 8C 9C TC JC QC KC AD 2D 3D 4D 5D 6D 7D 8D TD 9D JD QD KD
AH 2H 3H 4H 5H 6H 7H 8H 9H KH 6S QH TH AS 2S 3S 4S 5S JH 7S 8S 9S TS JS QS KS
#
stdout
Standard output is empty
stderr
*** Error in `./prog': double free or corruption (fasttop): 0x08af4458 ***
======= Backtrace: =========
/lib/i386-linux-gnu/i686/cmov/libc.so.6(+0x75e72)[0xb753ee72]
/lib/i386-linux-gnu/i686/cmov/libc.so.6(+0x76bb0)[0xb753fbb0]
/usr/lib/i386-linux-gnu/libstdc++.so.6(_ZdlPv+0x1f)[0xb772182f]
./prog[0x8048cdf]
./prog[0x8048ce4]
./prog[0x8048ce4]
./prog[0x8048d3c]
./prog[0x8048d3c]
./prog[0x8048ce4]
./prog[0x8048d3c]
./prog[0x8048d3c]
./prog[0x8048ce4]
./prog[0x8048d3c]
./prog[0x8048db3]
./prog[0x8048db3]
./prog[0x8048d3c]
./prog[0x8048ce4]
./prog[0x8048ce4]
./prog[0x8048ce4]
./prog[0x8048ce4]
./prog[0x8048d3c]
./prog[0x8048d3c]
./prog[0x8048d3c]
./prog[0x8048ce4]
./prog[0x8048db3]
./prog[0x8048db3]
./prog[0x8048ce4]
./prog[0x8048db3]
./prog[0x804894e]
/lib/i386-linux-gnu/i686/cmov/libc.so.6(__libc_start_main+0xf5)[0xb74e28f5]
./prog[0x8048ab1]
======= Memory map: ========
08048000-08049000 r-xp 00000000 09:03 16269493   /home/bkDwoN/prog
08049000-0804a000 rw-p 00001000 09:03 16269493   /home/bkDwoN/prog
08af4000-08b15000 rw-p 00000000 00:00 0          [heap]
b74c7000-b74c9000 rw-p 00000000 00:00 0 
b74c9000-b7672000 r-xp 00000000 09:03 16394299   /lib/i386-linux-gnu/i686/cmov/libc-2.17.so
b7672000-b7673000 ---p 001a9000 09:03 16394299   /lib/i386-linux-gnu/i686/cmov/libc-2.17.so
b7673000-b7675000 r--p 001a9000 09:03 16394299   /lib/i386-linux-gnu/i686/cmov/libc-2.17.so
b7675000-b7676000 rw-p 001ab000 09:03 16394299   /lib/i386-linux-gnu/i686/cmov/libc-2.17.so
b7676000-b7679000 rw-p 00000000 00:00 0 
b7679000-b7694000 r-xp 00000000 09:03 16394343   /lib/i386-linux-gnu/libgcc_s.so.1
b7694000-b7695000 rw-p 0001a000 09:03 16394343   /lib/i386-linux-gnu/libgcc_s.so.1
b7695000-b7696000 rw-p 00000000 00:00 0 
b7696000-b76d7000 r-xp 00000000 09:03 16394296   /lib/i386-linux-gnu/i686/cmov/libm-2.17.so
b76d7000-b76d8000 r--p 00040000 09:03 16394296   /lib/i386-linux-gnu/i686/cmov/libm-2.17.so
b76d8000-b76d9000 rw-p 00041000 09:03 16394296   /lib/i386-linux-gnu/i686/cmov/libm-2.17.so
b76d9000-b77b5000 r-xp 00000000 09:03 16679929   /usr/lib/i386-linux-gnu/libstdc++.so.6.0.18
b77b5000-b77b6000 ---p 000dc000 09:03 16679929   /usr/lib/i386-linux-gnu/libstdc++.so.6.0.18
b77b6000-b77ba000 r--p 000dc000 09:03 16679929   /usr/lib/i386-linux-gnu/libstdc++.so.6.0.18
b77ba000-b77bb000 rw-p 000e0000 09:03 16679929   /usr/lib/i386-linux-gnu/libstdc++.so.6.0.18
b77bb000-b77c2000 rw-p 00000000 00:00 0 
b77c4000-b77c8000 rw-p 00000000 00:00 0 
b77c8000-b77c9000 r-xp 00000000 00:00 0          [vdso]
b77c9000-b77e8000 r-xp 00000000 09:03 16394256   /lib/i386-linux-gnu/ld-2.17.so
b77e8000-b77e9000 r--p 0001f000 09:03 16394256   /lib/i386-linux-gnu/ld-2.17.so
b77e9000-b77ea000 rw-p 00020000 09:03 16394256   /lib/i386-linux-gnu/ld-2.17.so
bfdba000-bfddb000 rw-p 00000000 00:00 0          [stack]