Anna3O0

Divide et impera

Feb 11th, 2021
750
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 4.88 KB | None | 0 0
  1. //Day 1
  2.  
  3. #include <iostream>
  4.  
  5. using namespace std;
  6.  
  7. int v[100];
  8.  
  9. int maxim(int st,int dr)
  10. {
  11.     if(st==dr)
  12.         return v[st];
  13.     else
  14.     {
  15.         int m,a,b;
  16.         m=(st+dr)/2;
  17.         a=maxim(st,m);
  18.         b=maxim(m+1,dr);
  19.         if(a>b)
  20.             return a;
  21.         else
  22.             return b;
  23.     }
  24. }
  25.  
  26. int par(int st,int dr)
  27. {
  28.     if(st==dr)
  29.         if(v[st]%2==0)
  30.             return v[st];
  31.         else return 0;
  32.     else
  33.     {
  34.         int m,a,b;
  35.         m=(st+dr)/2;
  36.         a=par(st,m);
  37.         b=par(m+1,dr);
  38.         return a+b;
  39.     }
  40. }
  41.  
  42.  
  43. int suma(int st,int dr)
  44. {
  45.     if(st==dr)
  46.         return v[st];
  47.     else
  48.     {
  49.         int m,a,b;
  50.         m=(st+dr)/2;
  51.         a=suma(st,m);
  52.         b=suma(m+1,dr);
  53.         return a+b;
  54.     }
  55. }
  56.  
  57. int main()
  58. {
  59.     int i,n;
  60.     cin>>n;
  61.     for(i=1;i<=n;i++)
  62.         cin>>v[i];
  63.  
  64.     //cout<<maxim(1,n);
  65.     //cout<<suma(1,n);
  66.     cout<<par(1,n);
  67.     return 0;
  68. }
  69.  
  70. //Day 2
  71.  
  72. #include <iostream>
  73.  
  74. using namespace std;
  75.  
  76. int v[100];
  77.  
  78. int produs ( int st,int dr)
  79. {
  80.     if(st==dr)
  81.         if(v[st]<0)
  82.             return v[st];
  83.         else
  84.             return 1;
  85.     else
  86.     {
  87.         int m,a,b;
  88.         m=(st+dr)/2;
  89.         a=produs(st,m);
  90.         b=produs(m+1,dr);
  91.         return a*b;
  92.     }
  93. }
  94.  
  95. int pare( int st,int dr)
  96. {
  97.     if(st==dr)
  98.         if(v[st]%2==0)
  99.             return 1;
  100.         else
  101.             return 0;
  102.     else
  103.     {
  104.         int m,a,b;
  105.         m=(st+dr)/2;
  106.         a=pare(st,m);
  107.         b=pare(m+1,dr);
  108.         return a&&b;// or a*b
  109.     }
  110. }
  111.  
  112. int div10( int st,int dr)
  113. {
  114.     if(st==dr)
  115.         if(v[st]%10==0)
  116.             return 1;
  117.         else
  118.             return 0;
  119.     else
  120.     {
  121.         int m,a,b;
  122.         m=(st+dr)/2;
  123.         a=div10(st,m);
  124.         b=div10(m+1,dr);
  125.         return a||b;
  126.     }
  127. }
  128.  
  129. int nr( int st,int dr)
  130. {
  131.     if(st==dr)
  132.         if(st%2==0 && v[st]%2!=0)
  133.             return 1;
  134.         else
  135.             return 0;
  136.     else
  137.     {
  138.         int m,a,b;
  139.         m=(st+dr)/2;
  140.         a=nr(st,m);
  141.         b=nr(m+1,dr);
  142.         return a+b;
  143.     }
  144. }
  145.  
  146. int suma( int st,int dr)
  147. {
  148.     if(st==dr)
  149.         if(v[st]<0)
  150.             return v[st]*v[st];
  151.         else
  152.             return 0;
  153.     else
  154.     {
  155.         int m,a,b;
  156.         m=(st+dr)/2;
  157.         a=suma(st,m);
  158.         b=suma(m+1,dr);
  159.         return a+b;
  160.     }
  161. }
  162.  
  163. int main()
  164. {
  165.     int n,i;
  166.     cin>>n;
  167.     for(i=1;i<=n;i++)
  168.         cin>>v[i];
  169.     //cout<<produs(1,n);
  170.     /*if(pare(1,n))
  171.         cout<<"DA";
  172.     else
  173.         cout<<"NU";*/
  174.     //cout<<nr(1,n);
  175.     cout<<suma(1,n);
  176.     return 0;
  177. }
  178.  
  179. //Day 3
  180.  
  181. #include <iostream>
  182.  
  183. using namespace std;
  184.  
  185. int v[100];
  186.  
  187. int prim(int x)
  188. {
  189.     int d;
  190.     if(x<2)
  191.         return 0;
  192.     for(d=2;d<=x/2;d++)
  193.         if(x%2==0)
  194.             return 0;
  195.     return 1;
  196. }
  197.  
  198. int f(int st,int dr)
  199. {
  200.     if(st==dr)
  201.         return prim(v[st]);
  202.     else
  203.     {
  204.         int m,a,b;
  205.         m=(st+dr)/2;
  206.         a=f(st,m);
  207.         b=f(m+1,dr);
  208.         return a||b;
  209.     }
  210. }
  211.  
  212. int gauss(int st,int dr)
  213. {
  214.     if(st==dr)
  215.         return st;
  216.     else
  217.     {
  218.         int m,a,b;
  219.         m=(st+dr)/2;
  220.         a=gauss(st,m);
  221.         b=gauss(m+1,dr);
  222.         return a+b;
  223.     }
  224. }
  225.  
  226. int main()
  227. {
  228.     int n,i;
  229.     cin>>n;
  230.     /*for(i=1;i<=n;i++)
  231.         cin>>v[i];
  232.     if(f(1,n))
  233.         cout<<"Exista";
  234.     else
  235.         cout<<"Nu exista";*/
  236.     cout<<gauss(1,n);
  237.     return 0;
  238. }
  239.  
  240. //Day 4
  241.  
  242. #include <iostream>
  243.  
  244. using namespace std;
  245.  
  246. int v[100];
  247.  
  248. float suma(int st,int dr)
  249. {
  250.     if(st==dr)
  251.         return 1./(st*(st+1));
  252.     else
  253.     {
  254.         float a,b;
  255.         int m;
  256.         m=(st+dr)/2;
  257.         a=suma(st,m);
  258.         b=suma(m+1,dr);
  259.         return a+b;
  260.     }
  261. }
  262.  
  263. int sumaSupra(int st,int dr)
  264. {
  265.     if(st==dr)
  266.         return st*(st+1);
  267.     else
  268.     {
  269.         int m,a,b;
  270.         m=(st+dr)/2;
  271.         a=sumaSupra(st,m);
  272.         b=sumaSupra(m+1,dr);
  273.         return a+b;
  274.     }
  275. }
  276.  
  277. float P(int st,int dr)
  278. {
  279.     if(st==dr)
  280.         return 1-1./(st*st);
  281.     else
  282.     {
  283.         float a,b;
  284.         int m;
  285.         m=(st+dr)/2;
  286.         a=P(st,m);
  287.         b=P(m+1,dr);
  288.         return a*b;
  289.     }
  290. }
  291.  
  292. int min(int st,int dr)
  293. {
  294.     if(st==dr)
  295.         return v[st]*v[st];
  296.     else
  297.     {
  298.         int m,a,b;
  299.         m=(st+dr)/2;
  300.         a=min(st,m);
  301.         b=min(m+1,dr);
  302.         if(a<b)
  303.             return a;
  304.         else
  305.             return b;
  306.     }
  307. }
  308.  
  309. int egale(int st,int dr)
  310. {
  311.     if(st==dr)
  312.         return (v[st]==v[1]);
  313.     else
  314.     {
  315.         int m,a,b;
  316.         m=(st+dr)/2;
  317.         a=egale(st,m);
  318.         b=egale(m+1,dr);
  319.         return a&&b;
  320.     }
  321. }
  322.  
  323.  
  324. int main()
  325. {
  326.     int n,i;
  327.     cin>>n;
  328.     for(i=1;i<=n;i++)
  329.         cin>>v[i];
  330.     //cout<<min(1,n);
  331.     //cout<<P(2,n);
  332.     if(egale(1,n))
  333.         cout<<"Da";
  334.     else
  335.         cout<<"Nu";
  336.     return 0;
  337. }
  338.  
  339.  
  340.  
Advertisement
Add Comment
Please, Sign In to add comment