Link do concurso: https://atcoder.jp/contests/abc162/tasks
A - Sorte 7
#include <bits / stdc ++. h> usando o espaço para nome std; int main () { int n; cin >> n; cout << (to_string (n) .find ( " 7 " )! = - 1 ? " Sim " : " Não " ); }
B - Soma do FizzBuzz
#include <bits / stdc ++. h> usando ll = long long ; usando espaço para nome std; int main () { ll n; cin >> n; ll ans = 0 ; para (ll i = 1 ; i <= n; i ++ ) { if (i% 3 && i% 5 ) ans + = i; } cout << ans; }
C - Soma do MDC de Tuplas (Fácil)
Por que a renderização falhou novamente ...
#include <bits / stdc ++. h> usando ll = long long ; usando espaço para nome std; int main () { ll k; cin >> k; ll ans = 0 ; for (ll a = 1 ; a <= k; a ++ ) { for (ll b = 1 ; b <= k; b ++ ) { for (ll c = 1 ; c <= k; c ++ ) { ans + = __gcd ( __gcd (a, b), c); } } } Cout <<anos; }
D - trigêmeos RGB
Título
Uma string consiste em $ RBG $, encontre o trigêmeo $ (i, j, k) $ satisfazendo:
- $ i <j <k $
- $ s [i]! = s [j] \ \ & \ & \ s [i]! = s [k] \ \ & \ & \ s [j]! = s [k] $
- $ ji \! = \ kj $
Idéias
Armazene a posição de letras $ 3 $, enumere casos $ 9 $ e encontre o subscrito que satisfaça $ j> i, kj $ na pesquisa binária.
Código
#include <bits / stdc ++. h> usando ll = long long ; usando namespace std; int n; string s; vetor < int > v [ 3 ]; inline int idx ( int b, int a, int i) { // Encontre o primeiro subscrito não menos que v [a] [i] em v [b] retorne upper_bound (v [b] .begin (), v [b] .end (), v [a] [i] ) -v [b] .begin (); } ll cal ( int a, int b, int c) { ll ret = 0; for ( int i = 0 ; i <v [a] .size (); i ++ ) { for ( int j = idx (b, a, i); j <v [b] .size (); j ++ ) { para ( int k = idx (c, b, j); k <v [c] .size (); k ++ ) { if (v [b] [j] - v [a] [i]! = v [c] [k] - v [b] [j]) { // 等价 于 条件 中 的 j - i! = k - j ++ ret; } } } } retornar ret; } int main () { cin >> n >> s; for ( int i = 0 ; i <n; i ++) { // Armazena a posição de letras diferentes if (s [i] == ' R ' ) v [ 0 ] .push_back (i); else if (s [i] == ' L ' V) [ 1. .push_back (I)]; o outro V [ 2 ] .push_back (I); } LL ANS = 0 ; para ( int I = 0 ; I < . 3 ; i ++) { // peças Cite o RGB antes e depois de ( intj = 0 ; j < 3 ; j ++ ) { for ( int k = 0 ; k < 3 ; k ++ ) { if (i! = j && i! = k && j! = k) { ans + = cal (i, j, k); } } } } cout << ans; }