Advertisement
Tranvick

UP6_23

May 25th, 2013
124
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include <fstream>
  2. #include <iostream>
  3.  
  4. using namespace std;
  5.  
  6. int _fastcall f(int x) {
  7.     int flag, tmp;
  8.     _asm {
  9.         pushad
  10.         mov flag, 0
  11.         cmp ecx, 0
  12.         jle _end
  13.         mov eax, ecx
  14.         imul eax, ecx
  15.         mov ebx, 10
  16. _loop:
  17.         cdq
  18.         idiv ebx
  19.         push eax
  20.         push edx
  21.         mov eax, ecx
  22.         cdq
  23.         idiv ebx
  24.         pop tmp
  25.         mov ecx, eax
  26.         pop eax
  27.         cmp edx, tmp
  28.         jne _end
  29.         cmp ecx, 0
  30.         jne _loop
  31.         mov flag, 1
  32. _end:
  33.         popad
  34.         mov eax, flag
  35.     }
  36. }
  37. /*
  38. int main() {
  39.     ifstream fin("input.txt");
  40.     int a[111][111], n, ok[111];
  41.     unsigned char m;
  42.     fin >> n;
  43.     for (int i = 0; i < n; ++i)
  44.         for (int j = 0; j < n; ++j) fin >> a[i][j];
  45.     m = n;
  46.     _asm {
  47.         pushad
  48.         xor ecx, ecx
  49.         mov cl, m
  50.         lea esi, a
  51.         mov n, 0
  52.         xor ebx, ebx
  53. _loop1:
  54.         push esi
  55.         push ecx
  56.         mov edx, 1
  57.         mov cl, m
  58. _loop2:
  59.         push ecx
  60.         mov ecx, [esi]
  61.         call f
  62.         and edx, eax
  63.         pop ecx
  64.         add esi, 444
  65.         loop _loop2
  66.         pop ecx
  67.         pop esi
  68.         cmp edx, 0
  69.         je _null
  70.         mov eax, n
  71.         mov ok[ebx * 4], eax
  72.         inc ebx
  73. _null:
  74.         add esi, 4
  75.         inc n
  76.         loop _loop1
  77.         mov n, ebx
  78.         popad
  79.     }
  80.     for (int i = 0; i < n; ++i) cout << ok[i] << " ";
  81.     cout << endl;
  82. }*/
  83.  
  84. int main() {
  85.     ifstream fin("input.txt");
  86.     int **a, n, ok[111], i, n4;
  87.     unsigned char m;
  88.     fin >> n;
  89.     a = new int * [n];
  90.     for (int i = 0; i < n; ++i) {
  91.         a[i] = new int [n];
  92.         for (int j = 0; j < n; ++j) fin >> a[i][j];
  93.     }
  94.     m = n;
  95.     _asm {
  96.         pushad
  97.         xor ecx, ecx
  98.         mov cl, m
  99.         mov n, 0
  100.         mov n4, 0
  101.         xor ebx, ebx
  102. _loop1:
  103.         push ecx
  104.         mov edx, 1
  105.         mov cl, m
  106.         mov i, 0
  107. _loop2:
  108.         mov esi, a
  109.         add esi, i
  110.         mov esi, [esi]
  111.         add esi, n4
  112.         push ecx
  113.         mov ecx, [esi]
  114.         call f
  115.         and edx, eax
  116.         pop ecx
  117.         add i, 4
  118.         loop _loop2
  119.         pop ecx
  120.         cmp edx, 0
  121.         je _null
  122.         mov eax, n
  123.         mov ok[ebx * 4], eax
  124.         inc ebx
  125. _null:
  126.         inc n
  127.         add n4, 4
  128.         loop _loop1
  129.         mov n, ebx
  130.         popad
  131.     }
  132.     for (int i = 0; i < n; ++i) cout << ok[i] << " ";
  133.     cout << endl;
  134. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement