Quipex icon

M.blackFriday

Quipex | PRO | 04/03/17 10:17:36 PM UTC | 0 ⭐ | 360 👁️ | Never ⏰ | []
C++ |

2.02 KB

|

None

|

0 👍

/

0 👎

#include <iostream>
#include <iomanip>
#include <cstring>
#include <string>
#include <cstdio>
#include <cstdlib>
#include <algorithm>
#include <vector>
#include <cmath>
#include <fstream>
#include <queue>
#include <iterator>
#include <bitset>
#include <set>
#include <unordered_set>
#include <map>
#include <unordered_map>
 
using namespace std;
 
//Utilities
#define sqr(x) ((x)*(x))
#define cbr(x) ((x)*(x)*(x))
#define rep(c, i, n) for((i)=(c); (i)<(n); (i)++)
 
//Geometry
/**
struct pt { long long x, y; };
double vecmul(pt a, pt b) { //Векторное умножение А*В
return (a.x*b.y - b.x*a.y);
}
//скалярное умножение a*b = |a|*|b|*cos(a,b)
 
double dist(double ax, double ay, double bx, double by) { return sqrt(sqr(ax - bx) + sqr(ay - by)); }
*/
 
//DBG
//template<typename T, typename T2>void printarr(T  a[], T2 sz, T2 beg = 0) { for (T2 i = beg; i<sz; i++) cout << a[i] << " "; cout << endl; }
#define DBG(a)         cout<<#a<<"="<<(a)<<"\n"
#define DBG2(a,b)       cout<<#a<<"="<<(a)<<", "<<#b<<"="<<(b)<<"\n"
#define DBG3(a,b,c)     cout<<#a<<"="<<(a)<<", "<<#b<<"="<<(b)<<", "<<#c<<"="<<(c)<<"\n"
 
//Files
#define FILE_MODE(FILE) freopen(FILE".in", "r", stdin), freopen(FILE".out", "w", stdout)
 
//Constants
#define PI    3.1415926535897932
#define INF   1011111111
#define LLINF 1000111000111000111LL
#define eps   1e-14
#define mod   1000000007
#define ll long long
#define ull unsigned long long
//-------------------------------------------------
#define N 100010
 
int main() {
    int price[N];
    queue<int> priceDiscount;
    queue<int> out;
    int n;
    cin >> n;
    int i;
 
    rep(0, i, n) {
        cin >> price[i];
        if (!priceDiscount.empty()) {
            if (price[i] != priceDiscount.front()) {
                out.push(price[i]);
                priceDiscount.push(price[i] / 3 * 4);
            }
            else priceDiscount.pop();
        }
        else {
            out.push(price[i]);
            priceDiscount.push(price[i] / 3 * 4);
        }
    }
    while (!out.empty()) {
        cout << out.front() << endl;
        out.pop();
    }
    return 0;
}

Comments