Cod sursa(job #2941681)

Utilizator AztecaVlad Tutunaru 2 Azteca Data 18 noiembrie 2022 01:46:06
Problema Perle Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 2.02 kb
#include <iostream>
#include <fstream>
#include <algorithm>
#include <cmath>
#include <vector>
#include <map>
#include <unordered_map>
#include <set>
#include <cstring>
#include <chrono>
#include <cassert>
#include <bitset>
#include <stack>
#include <queue>
#include <iomanip>

#pragma GCC optimize("Ofast")
//#pragma GCC optimize("Ofast,unroll-loops")
//#pragma GCC target("sse,sse2,sse3,ssse3,sse4,popcnt,abm,mmx,avx,tune=native")
#define x first
#define y second
#define ld long double
#define ll long long
#define ull unsigned long long
#define us unsigned short
#define lsb(x) ((x) & (-(x)))
#define pii pair <int, int>

using namespace std;

ifstream in("ambuscada2.in");
ofstream out("ambuscada2.out");

int n, m, v;
int x, y, z;
int k, k2;

pii updates[200005];

int main() {
  in >> n >> m >> v;

  for (int i = 1; i <= m; i++) {
    in >> x >> y >> z;

    updates[2 * i - 1] = { x, z };
    updates[2 * i] = { y + 1, -z };
  }

  m *= 2;

  updates[0] = { 1, 0 };
  updates[++m] = { n + 1, 0 };
  sort(updates + 1, updates + m + 1);

  int ans = 0;
  ll sum = 0;
#include <stdio.h>
#define NMAX 10000
int v[NMAX];
int c( int i );
int b( int i ) {
    if ( v[i] == 2 )
        return b( i + 1 );
    if ( v[i] == 1 && v[i + 2] == 3 )
        return c( i + 4 );
    return 0;
}
int c( int i ) {
    if ( v[i] == 2 )
        return i + 1;
    if ( v[i] == 3 )
        return c( b( i + 1 ) );
    if ( v[i] == 1 && v[i + 1] == 2 )
        return i + 3;
    return 0;
}
int main() {
    FILE *fin, *fout;
    int q, n, i, j;
    fin = fopen( "perle.in", "r" );
    fout = fopen( "perle.out", "w" );
    fscanf( fin, "%d", &q );
    for ( i = 0; i < q; i++ ) {
        fscanf( fin, "%d", &n );
        for ( j = 0; j < n; j++ )
            fscanf( fin, "%d", &v[j] );
        if ( n == 1 || b( 0 ) == n || c( 0 ) == n )
            fprintf( fout, "1\n" );
        else
            fprintf( fout, "0\n" );
    }
    fclose( fin );
    fclose( fout );
    return 0;
}