Hora de início: 2011-02-04 09:14:00 -0200 Hora de término: 2011-02-04 13:14:00 -0200
POS | Competidor | Resultado | Pontuação | A | B | C | D | E | F | G | H | |
---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | Eric Destefanis | 6 (678) | 99 | +0 | +0 | +3 | +1 | +0 | +0 | -2 | ||
2 | Gabriel Luís Mello Dalalio | 6 (708) | 97 | +1 | +0 | +0 | +0 | +0 | +1 | |||
3 | walter erquinigo | 6 (735) | 95 | +0 | +1 | +0 | +0 | +1 | +2 | |||
4 | Daniel Ribeiro Moreira | 5 (537) | 93 | +0 | +0 | +2 | +0 | +0 | ||||
5 | Jesus Alejandro | 5 (633) | 91 | +0 | +0 | +1 | +1 | +0 | ||||
6 | Thiago Sonego Goulart | 5 (654) | 89 | +0 | +0 | +1 | +2 | -4 | +3 | |||
7 | Cesar Kawakami | 5 (729) | 87 | +0 | +3 | +1 | +0 | +1 | ||||
8 | Cesar Gamboa | 5 (761) | 85 | +1 | +0 | +0 | +1 | +2 | ||||
9 | Guilherme Souza | 4 (198) | 83 | -7 | -1 | +0 | +0 | +0 | +0 | |||
10 | Tiago Madeira | 4 (294) | 81 | +2 | +2 | +0 | +0 | |||||
11 | daniel soncco | 4 (329) | 79 | +2 | +0 | +0 | +0 | |||||
12 | Leonardo Marchetti | 4 (397) | 77 | +0 | +0 | +0 | +0 | |||||
13 | Renato Parente | 4 (430) | 75 | +2 | +0 | +2 | +0 | |||||
14 | Pablo Pinheiro | 4 (432) | 73 | +0 | +0 | +0 | +1 | |||||
15 | Gaston Ingaramo | 4 (464) | 71 | +0 | +0 | +0 | +6 | |||||
16 | Igor R. de Assis | 4 (608) | 69 | +1 | +0 | +1 | +5 | |||||
17 | Pedro Veras | 3 (174) | 67 | +0 | +2 | -4 | +0 | |||||
18 | Matias Daniel Tealdi | 3 (210) | 65 | -3 | +0 | +2 | +0 | |||||
19 | Caique Porto Lira | 3 (227) | 63 | +0 | +0 | -1 | +0 | |||||
20 | Natan Costa Lima | 3 (249) | 61 | +0 | +1 | +0 | -1 | |||||
21 | Atol Fortin | 3 (314) | 59 | +2 | +1 | +2 | -11 | |||||
22 | Leonardo Inácio | 3 (317) | 57 | +0 | +0 | +0 | ||||||
23 | Arthur | 3 (320) | 55 | +0 | +0 | +3 | ||||||
24 | Renan Ferraz Pires | 3 (331) | 53 | +0 | +0 | +1 | ||||||
25 | Luiz Afonso | 3 (399) | 51 | +1 | +1 | +0 | -3 | |||||
26 | Ricardo Oliveira | 3 (422) | 49 | +0 | +0 | +5 | -3 | |||||
27 | Eduardo Ribas | 3 (531) | 47 | -1 | +9 | +1 | +0 | -7 | ||||
28 | Felipe Abella | 3 (544) | 45 | -1 | +6 | +0 | +1 | |||||
29 | Edwin Macelo Guzman Buezo | 3 (726) | 43 | +1 | +6 | +4 | ||||||
30 | Leonardo Martinez | 2 (89) | 41 | -1 | +0 | +1 | -7 | |||||
31 | Douglas Santos | 2 (111) | 39 | +0 | +0 | -3 | -1 | |||||
32 | Vinicius Ruoso | 2 (158) | 37 | +0 | +2 | -1 | -3 | |||||
33 | Filipe Martins | 2 (196) | 35 | +2 | +1 | -7 | ||||||
34 | Paulo Costa | 2 (220) | 33 | +0 | +0 | -5 | ||||||
35 | Phyllipe Cesar | 2 (388) | 31 | +7 | +1 | |||||||
36 | Adriana Libório | 2 (391) | 29 | +1 | +6 | |||||||
37 | Davi Duarte Pinheiro | 2 (455) | 27 | +2 | +5 | -2 | ||||||
38 | Nicolas Gumiel | 2 (470) | 25 | -2 | +1 | +4 | ||||||
39 | Igor Ramos | 2 (512) | 23 | -3 | +4 | +5 | ||||||
40 | Victor Hugo Paredes Mora | 2 (616) | 21 | -2 | +1 | +9 | ||||||
41 | Andre Hahn | 1 (14) | 19 | -14 | +0 | |||||||
42 | Rafael Brandão | 1 (55) | 17 | -3 | +1 | |||||||
47 | Vinicius Flores Zambaldi | 1 (173) | 7 | -3 | +3 | |||||||
47 | Alex Alves da Paixão | 0 (0) | 7 | -3 | ||||||||
47 | Leonardo Flores Zambaldi | 0 (0) | 7 | |||||||||
47 | Victor Jatobá | 0 (0) | 7 | -5 | -4 | |||||||
47 | Felipe Menezes Machado | 0 (0) | 7 | |||||||||
47 | Ricardo Hahn | 0 (0) | 7 | |||||||||
47 | gustavo pacianotto gouveia | 0 (0) | 7 | |||||||||
47 | Renato Ferreira | 0 (0) | 7 | </div> |
#include <stdio.h> #include <algorithm> using namespace std; #define LIM 1000100 int k; int p[LIM], pc; int f[LIM], ini, fim, dir, fc; int main(){ int a; scanf("%d",&k); pc=0; ini=1; fim=0; dir=1; fc=0; while( scanf("%d",&a)>0 && a!=0 ){ //printf("%d %d\n",ini,fim); if( a>0 ){ fim=(fim+dir+LIM)%LIM; f[fim]=a; fc++; if( fc>k ){ p[++pc]=f[ini]; ini=(ini+dir+LIM)%LIM; fc--; } } else if( a==-1 ){ printf("%d\n",f[fim]); fim=(fim-dir+LIM)%LIM; if( pc>0 ){ ini=(ini-dir+LIM)%LIM; f[ini]=p[pc--]; } else{ fc--; } } else{ swap(ini,fim); dir*=-1; } } return 0; }
#include <stdio.h> #include <string.h> #include <cmath> using namespace std; #define MAXN 110 #define MOD 1000000009 struct point{ double x, y; point(){} point( double a, double b ){ x=a; y=b; } point operator+( point p ){ return point(x+p.x,y+p.y); } point operator*( double k ){ return point(k*x,k*y); } point operator/( double k ){ return point(x/k,y/k); } }; point cm[MAXN][MAXN]; long long p[MAXN][MAXN], bin[MAXN][MAXN], resp; int n; double d, r, dist, ang; void calc(){ int i, j; memset(bin,0,sizeof(bin)); bin[0][0]=1; for( i=1 ; i<=n ; i++ ){ bin[i][0]=1; for( j=1 ; j<=n ; j++ ){ bin[i][j]=(bin[i-1][j]+bin[i-1][j-1])%MOD; } } } int main(){ int i, j, k; scanf("%d %lf %lf",&n,&r,&d); calc(); dist=2.0*r*n*sin(4*atan(1)/n)/(3.0*4.0*atan(1)); ang=4*atan(1)/n; //printf("--> %.2lf %.2lf\n",dist,ang); for( i=0; i<n ; i++ ){ cm[i][i].x=cos(ang*(2*i+1))*dist; cm[i][i].y=d+sin(ang*(2*i+1))*dist; //printf("%.2lf %.2lf\n",cm[i][i].x,cm[i][i].y); } for( k=1 ; k<n ; k++ ){ for( i=0 ; i<n ; i++ ){ cm[i][(i+k)%n]=(cm[i][(i+k-1)%n]*(double)k+cm[(i+k)%n][(i+k)%n])/((double)k+1); } } for( i=0 ; i<n ; i++ ){ if( cm[i][i].y>=0 ){ p[i][i]=1; } else{ p[i][i]=0; } p[(i+1)%n][i]=1; } for( k=1 ; k<=n-2 ; k++ ){ for( i=0 ; i<n ; i++ ){ p[i][(i+k)%n]=0; if( cm[i][(i+k)%n].y>0 ){ for( j=0 ; j<=k ; j++ ){ p[i][(i+k)%n]+=(((p[i][(i+j-1+n)%n]*p[(i+j+1)%n][(i+k)%n])%MOD)*bin[k][j])%MOD; p[i][(i+k)%n]%=MOD; } } //printf("%d %d: %lld\n",i,(i+k)%n,p[i][(i+k)%n]); } } resp=0; for( i=0 ; i<n ; i++ ){ resp+=p[i][(i+n-2)%n]%MOD; resp%=MOD; } printf("%lld\n",resp); return 0; }
#include <iostream> #include <cstdio> #include <cstring> #include <set> using namespace std; char str[100010]; int main() { scanf(" %s", str); int n = strlen(str); set <int> bla; for (int i = 0; i < n; i++) { int val = 0; for (int j = i; j < min(n, i+7); j++) { val = 10*val + (str[j]-'0'); bla.insert(val); } } int last = 0; set<int>::iterator it; for (it = bla.begin(); it != bla.end(); it++) { int v = *it; if (v > last+1) { printf("%d\n", last+1); return 0; } last = v; } it = bla.end(); it--; printf("%d\n", (*it)+1); return 0; }
#include <iostream> #include <cstdio> #include <cstring> using namespace std; int main() { int a, b, c, d; scanf("%d:%d %d:%d", &a, &b, &c, &d); int e = c-a, f = d-b; if (f < 0) { f += 60; e--; } if (e < 0) e += 12; if (e == 0 && f == 0) e += 12; printf("Misof slept for"); if (e) printf(" %d hour%s", e, (e > 1) ? "s" : ""); if (e && f) printf(" and"); if (f) printf(" %d minute%s", f, (f>1) ? "s" : ""); printf(".\n"); return 0; }
#include <iostream> #include <cstdio> #include <map> #include <utility> #include <cassert> #include <cstring> #include <stack> #define INF 1000000000 #define MAXR 2048 #define MAXC 2048 #define MAXN (MAXR*MAXC/*+2*/) using namespace std; int nrow, ncol, missy, missx; char result[MAXR][MAXC]; char getlet(int y, int x) { return 'a' + ((y%5)*5 + (x%5)); } int go(int y, int x) { if (y == nrow) { y = 0; x ++; } if (x == ncol) return 1; if (result[y][x] != '*' || (y == missy && x == missx)) return go(y+1, x); if (y+1 < nrow && result[y+1][x] == '*' && !(y+1 == missy && x == missx)) { result[y][x] = result[y+1][x] = getlet(y, x); if (go(y+1, x)) return 1; result[y][x] = result[y+1][x] = '*'; } if (x+1 < ncol && result[y][x+1] == '*' && !(y == missy && x+1 == missx)) { result[y][x] = result[y][x+1] = getlet(y, x); if (go(y+1, x)) return 1; result[y][x] = result[y][x+1] = '*'; } return 0; } struct state { int y, x, pos; state(int y, int x, int pos): y(y), x(x), pos(pos) {} }; void run(int& ret, stack<state>& states) { state st = states.top(); states.pop(); int y= st.y, x = st.x; if (y == nrow) { y = 0; x ++; } if (x == ncol) { ret = 1; return; } if (st.pos == 0) goto pos0; else if (st.pos == 1) goto pos1; else if (st.pos == 2) goto pos2; else if (st.pos == 3) goto pos3; pos0: if (result[y][x] != '*' || (y == missy && x == missx)) { states.push(state(y, x, 1)); states.push(state(y+1, x, 0)); return; pos1: //ret = ret; return; } if (y+1 < nrow && result[y+1][x] == '*' && !(y+1 == missy && x == missx)) { result[y][x] = result[y+1][x] = getlet(y, x); states.push(state(y, x, 2)); states.push(state(y+1, x, 0)); return; pos2: if (ret) { //ret = 1; return; } result[y][x] = result[y+1][x] = '*'; } if (x+1 < ncol && result[y][x+1] == '*' && !(y == missy && x+1 == missx)) { result[y][x] = result[y][x+1] = getlet(y, x); states.push(state(y, x, 3)); states.push(state(y+1, x, 0)); return; pos3: if (ret) { //ret = 1; return; } result[y][x] = result[y][x+1] = '*'; } ret = 0; return; } stack <state> states; int go2(void) { states.push(state(0, 0, 0)); int ret = -1; while (!states.empty()) { run(ret, states); } return ret; } int main() { scanf("%d %d %d %d", &nrow, &ncol, &missy, &missx); missy--, missx --; if ((missy+missx)%2 || (nrow*ncol-1)%2) { printf("impossible\n"); return 0; } for (int y = 0; y < nrow; y++) for (int x = 0; x < ncol; x++) result[y][x] = '*'; int x = go2(); if (!x) { //abort(); printf("impossible\n"); return 0; } for (int y = 0; y < nrow; y++) { for (int x = 0; x < ncol; x++) printf("%c", result[y][x]); printf("\n"); } return 0; }
#pragma comment(linker, "/STACK:16777216") #include <cstdio> #include <cstdlib> #include <cstring> #include <cfloat> #include <climits> #include <cctype> #include <cmath> #include <cassert> #include <ctime> #include <iostream> #include <iomanip> #include <algorithm> #include <sstream> #include <string> #include <vector> #include <deque> #include <list> #include <queue> #include <stack> #include <map> #include <set> #include <bitset> #include <complex> #include <functional> #include <numeric> using namespace std; template<class T> void pv(T a, T b) { for (T i = a; i != b; ++i) cout << *i << " "; cout << endl; } typedef long long ll; #define eps 1e-10 #define inf 0x3f3f3f3f #define INF 0x3f3f3f3f3f3f3f3fLL #define fr(x,y,z) for(int(x)=(y);(x)<(z);(x)++) #define cast(x,t) *({stringstream ss;static t __ret;ss<<x,ss>>__ret;&__ret;}) #define dbg(x) cout << #x << " == " << x << endl #define print(x) cout << x << endl // var int n, m, k; int dp[1<<20]; pair<int,int> op[1<<20]; int read() { if(scanf("%d %d %d",&n,&m,&k) != 3) return 0; for(int i = 0; i < m; i++) { scanf("%d %d",&op[i].first,&op[i].second); } return 1; } void process() { memset(dp,0,sizeof(dp)); for(int i = 0; i < m; i++) { dp[ op[i].first ] = min(dp[ op[i].first ], dp[ op[i].second ]); dp[ op[i].second ]++; } //pv(dp+1,dp+n+1); int tot = 0; for(int i = 2; i <= n; i++) if(dp[i] <= k) { tot += k + 1 - dp[i]; } printf("%d\n",tot); } int main() { // solve int t = 1 << 30; //cin >> t; while(t-- && read()) { process(); //break; } return 0; }
#include <stdio.h> #include <algorithm> using namespace std; long long h, l , w; long long ini, fim, i; int main(){ int imp; scanf("%lld %lld %lld",&h,&l,&w); if( (l+w)%4!=0 ){ printf("impossible\n"); } else{ ini=max((long long)0,((l+w)/4)-h); fim=min(w,(l-w)/2); if( fim>ini+100 ){ fim=ini+100; } imp=1; for( i=ini ; i<=fim && imp==1 ; i++ ){ if( ((w-i)%2)==0 && ((l-w-2*i)%4)==0 ){ imp=0; printf("%lld %lld %lld %lld\n",i,(i+h-(l+w)/4),(w-i)/2,(l-w-2*i)/4); } } if( imp ){ printf("impossible\n"); } } return 0; }
#include <cstdio> #include <string> #include <cstring> #include <algorithm> #include <map> #include <set> #include <string> #include <iostream> #include <queue> #include <vector> #include <cmath> using namespace std; int N,M; char nomesala[16][32]; int sala[16]; int adjacentes[16]; int arestaa[32]; int arestab[32]; int peso[32]; #define two(n) (1<<(n)) double PD[8][two(18)]; int cmp(double a, double b) { if(fabs(a-b)<1e-8) return 0; if(a<b) return -1; return 1; } void sistlinear(int nest,double sist[10][10]) { for(int i=0;i<nest-1;i++) { //pega a linha com maior valor da coluna i if(cmp(sist[i][i],0.0)==0) { int q=i; for(int j=i+1;j<nest;j++) if(sist[j][i] > sist[q][i]) q=j; memcpy(sist[9],sist[i],sizeof(sist[0])); memcpy(sist[i],sist[q],sizeof(sist[0])); memcpy(sist[q],sist[9],sizeof(sist[0])); } for(int j=i+1;j<nest;j++) { double v=-sist[j][i]/sist[i][i]; for(int k=i;k<=nest;k++) sist[j][k]+=sist[i][k]*v; } } for(int i=nest-1;i>=0;i--) { double soma=0; for(int j=i+1;j<nest;j++) soma+=sist[i][j]*sist[j][nest]; sist[i][nest]=(sist[i][nest]-soma)/sist[i][i]; } } double calc(int p, int b) { double& ans=PD[p][b]; if(ans!=-1) return ans; ans=0.0; //chegou ao fim if(b==two(M)-1) { if(adjacentes[p]==1) return ans=0.0; return ans=-sala[p]; } //pega todas as cidades que foram atingidas int bc=two(p); for(int i=0;i<M;i++) if(b&two(i)) bc|=two(arestaa[i])|two(arestab[i]); //mapeia estado para variavel do sistema linear int nest=0; double sist[10][10]; memset(sist,0,sizeof(sist)); int qualsist[10]; for(int i=0;i<N;i++) if(two(i)&bc) qualsist[i]=nest++; if(nest>=9) printf("%d\n",nest); for(int i=0;i<nest;i++) sist[i][i]=1.0; //monta sistema linear for(int j=0;j<M;j++) { int i=-1; int c,b2; //aresta a ta dentro if(two(arestaa[j]) & bc) { i=arestaa[j]; c=arestab[j]; b2=b|two(j); if(b2!=b) { sist[qualsist[i]][nest]+=(1.0/(double)adjacentes[i]) * (calc(c,b2) + peso[j] + sala[c] ); } else { sist[qualsist[i]] [ qualsist[c] ] += -(1.0/(double)adjacentes[i]); sist[qualsist[i]] [ nest ] += (1.0/(double)adjacentes[i])*(peso[j] + sala[c]); } } if(two(arestab[j]) & bc) { i=arestab[j]; b2=b|two(j); c=arestaa[j]; if(b2!=b) { sist[qualsist[i]][nest]+=(1.0/(double)adjacentes[i]) * (calc(c,b2) + peso[j] + sala[c] ); } else { sist[qualsist[i]] [ qualsist[c] ] += -(1.0/(double)adjacentes[i]); sist[qualsist[i]] [ nest ] += (1.0/(double)adjacentes[i])*(peso[j] + sala[c]); } } } sistlinear(nest,sist); for(int i=0;i<N;i++) if(two(i) & bc) { PD[i][b]=sist[qualsist[i]] [nest]; } return ans=sist[qualsist[p]][nest]; } int main(void) { scanf("%d %d",&N, &M); for(int i=0;i<N;i++) { scanf("%s %d",nomesala[i],sala+i); } memset(adjacentes,0,sizeof(adjacentes)); for(int i=0;i<M;i++) { char aux[2][32]; int q[2]; scanf("%s %s %d",aux[0],aux[1],peso+i); for(int j=0;j<2;j++) for(int k=0;k<N;k++) if(strcmp(aux[j],nomesala[k])==0) q[j]=k; arestaa[i]=q[0]; arestab[i]=q[1]; adjacentes[q[0]]++; adjacentes[q[1]]++; } for(int i=0;i<N;i++) for(int j=0;j<two(M);j++) PD[i][j]=-1.0; double ans=1e100; vector<string> vans; for(int i=0;i<N;i++) { double v=sala[i]+calc(i,0); if(cmp(v,ans)==0) { vans.push_back(nomesala[i]); } else if(v<ans) { vans.clear(); ans=v; vans.push_back(nomesala[i]); } } sort(vans.begin(),vans.end()); for(int i=0;i<(int)vans.size();i++) { if(i) printf(" "); cout << vans[i]; } printf("\n%.8lf\n",ans); return 0; }