Creative Candy Consumption

Problem Link

Solution by TheRealFertos100 pts

Code / Notes

#include <bits/stdc++.h>
using namespace std;

//professor pesquisa Eternal Sleep Paralysis
//https://www.youtube.com/watch?v=JtJuv17TjCM/esse aq

// Problema Atual: 4

int BLOODLUST (int a,int b) {
    if (a==b) {return 0;}
    else if (a>b) {
        if (a==3 && b==1) {return -1;}
        else {return 1;}
    }
    else if (b==3 && a==1) {return 1;}
    else {return -1;}
}

int main () {
    string a,b;
    cin >> a >> b;
    vector <int> esm,ssm;
    for (int i=(a.size())-1;i>=0;i--) {
        char w = a[i];
        if (w=='R') {esm.push_back(3);}
        else if (w=='G') {esm.push_back(2);}
        else {esm.push_back(1);}
    }
    for (int i=(b.size())-1;i>=0;i--) {
        char w=b[i];
        if (w=='R') {ssm.push_back(3);}
        else if (w=='G') {ssm.push_back(2);}
        else {ssm.push_back(1);}
    }
    int N=0, M=0;
    while (esm.size()>0 && ssm.size()>0) {
        int w=BLOODLUST(esm.back(),ssm.back());
        if (w==0) { // :cry:
            esm.pop_back();
            ssm.pop_back();
            N++;
            M++;
        }
        else if (w==1) {  // :cry:
            ssm.pop_back();//==//nn//as operacoes em si vao ser muitas//eu acho//no minimo um segundo pro pior caso//e isso e so os bloodlusts
            N++;//tipo so as funcoes com tipo R e G ou vice versa vai dar 4 operacoes// ai com no maximo 1999999 operacoes isso ja da .8 segundos
        }
            // 1'000'000 pra cada
            // 2'000'000 que vai rodar -> * 5 -> 1e7 -> 0.02s -> 150x mais rapido do que precisa
            // Limite = 3s
            // 1e8 = 1s
        else {//1999999 operacoes// sobra 1//e mt lento pro meu gosto
            esm.pop_back();
            M++;//tendi//era pra dar 2 5t
        }
    }
    if (esm.size()!=0) {N+=esm.size();}
    else {M+=ssm.size();}
    cout << N << endl << M;
}
//eu tenho a impressao que vai ficar lento
// por que?

Last updated 14 hours, 48 minutes ago


« Back to problem