C++ HackerRank|Waiter

来源:互联网 发布:php 拍卖 源码 手机 编辑:程序博客网 时间:2024/06/09 16:41

  1. Dashboard 
  2.  Data Structures 
  3.  Stacks 
  4.  Waiter
    1. #include <stack>#include <cmath>#include <iostream>using namespace std;int * prime;inline bool isPrime(int n){    const int SQRTN = sqrt(n);    for (int i = 1; prime[i] <= SQRTN; ++ i)    {        if (n % prime[i] == 0)            return false;    }    return true;}int main() {    int n, q, j = 2;    cin >> n >> q;    prime = new int[q + 1]();    prime[1] = 2;    for (int i = 3; j <= q; i += 2)    {        if (isPrime(i))            prime[j ++] = i;    }    int temp;    stack<int> s[q + 1][2];    for (int i = 0; i < n; ++ i)    {        cin >> temp;        s[0][0].push(temp);    }    for (int i = 0; i < q; ++ i)    {        while (! s[i][0].empty())        {            temp = s[i][0].top() % prime[i + 1] ? 0 : 1;            s[i + 1][temp].push(s[i][0].top());            s[i][0].pop();        }    }    for (int i = 1; i <= q; ++ i)     {        while(! s[i][1].empty())         {            cout << s[i][1].top() << endl;            s[i][1].pop();        }        while(! s[i][0].empty())         {            cout << s[i][0].top() << endl;            s[i][0].pop();        }    }        return 0;}


0 0
原创粉丝点击