v 0. Pasted by slipstak2 as cpp at 2011-01-08 14:42:43 MSK and set expiration to never.

Paste will expire never.

  1. // Меньшиков. Тренировка 13.
  2. // 13E. Сумма произведений [prodsum]
  3. // O(N*N)
  4. // ibelyaev: 07Jan2011
  5.  
  6. #include <iostream>
  7. #include <cstdio>
  8.  
  9. using namespace std;
  10.  
  11. int n,s;
  12. void input()
  13. {
  14.     cin>>n>>s;
  15. }
  16. int F(int n)
  17. {
  18.     return n*(n-1)>>1;
  19. }
  20. void solve()
  21. {
  22.     int amount = 0;
  23.     for (int nz = 0; nz<=n; nz++)
  24.     {
  25.         for (int minus = 0; minus<=nz; minus++)
  26.         {
  27.             int plus = nz - minus;
  28.             if (F(minus) + F(plus) - plus*minus == s)
  29.             {
  30.                 amount++;
  31.                 // break нужен для того, чтобы не считать
  32.                 // одинаковые комбинации, содержащие
  33.                 // одинаковое количество нулей
  34.                 break;
  35.             }
  36.         }
  37.     }
  38.     cout<<amount;
  39. }
  40. int main()
  41. {
  42.     freopen("input.txt","r",stdin);
  43.     freopen("output.txt","w",stdout);
  44.  
  45.     input();
  46.     solve();
  47.     return 0;
  48. }


Editing is locked.