понедельник, 27 октября 2008 г.

Програмчлалын XIII онлайн тэмцээний бодолтууд

"Дараалал"
Irmuun




#include <iostream>
#include <algorithm>
using namespace std;

typedef struct{
long long x;
long long y;
}T;

T D[60001],Queue[160001];
long long Dis[160001],DisTemp[160001],QLab[160001],QPos[160001],Pre[160001],Next[160001];
long long N,Q,DC,Head;

void InitQueue(void){
long long i;
for(i=1;i<DC;i++){
Queue[i].x=Dis[i];
Queue[i].y=Dis[i+1]-1;
}
for(i=1;i<DC;i++){
Pre[i]=i-1;
Next[i]=i+1;
}
}

void Init(void){
long long i;
scanf("%ld",&N);
for(i=1;i<=N;i++){
scanf("%ld %ld",&D[i].x, &D[i].y);
DisTemp[i*3-1]=D[i].x;
DisTemp[i*3-2]=D[i].x+1;
DisTemp[i*3]=D[i].y;
}
DisTemp[N*3+1]=1;
DisTemp[N*3+2]=1000000001;
sort(DisTemp+1,DisTemp+N*3+2);
DisTemp[0]=0;
DC=0;
for(i=1;i<=N*3+2;i++)
if(DisTemp[i]!=DisTemp[i-1]){
++DC;
Dis[DC]=DisTemp[i];
}
InitQueue();
}

long long Find(long long x){
long long St,Ed,Mid;
St=1;
Ed=DC-1;
while(St<=Ed){
Mid=(St+Ed)/2;
if((Queue[Mid].x<=x)&&(Queue[Mid].y>=x))return Mid;
if(Queue[Mid].x>x)Ed=Mid-1;
else St=Mid+1;
}
}

long long Find2(long long *x){
long long St,Ed,Mid,y;
y=1;
St=1;
Ed=DC-1;
while(St<=Ed){
Mid=(St+Ed)/2;
if(QLab[QPos[Mid]]>=*x)
Ed=Mid-1;
else{
y=Mid;
St=Mid+1;
}
}
*x-=QLab[QPos[y]];
return QPos[y];
}

void Solve(void){
long long x,y,i,j,Sum;
char Ch[100];
Head=1;
for(i=1;i<=N;i++){
x=Find(D[i].x);
y=Find(D[i].y);
if(y==Head)Head=x;
else if(x==Head)Head=Next[x];
Pre[Next[x]]=Pre[x];
Next[Pre[x]]=Next[x];
Pre[x]=Pre[y];
Next[x]=y;
Next[Pre[y]]=x;
Pre[y]=x;
}
j=Head;
Sum=0;
for(i=1;i<DC;i++){
QLab[j]=Sum;
QPos[i]=j;
Sum+=(Queue[j].y-Queue[j].x+1);
j=Next[j];
}
scanf("%ld",&Q);
for(i=1;i<=Q;i++){
scanf("%s %ld",Ch,&x);
if(Ch[0]=='L'){
y=Find2(&x);
printf("%ld\n",Queue[y].x+x-1);
}
else{
y=Find(x);
printf("%ld\n",QLab[y]+x-Queue[y].x+1);
}
}
}

int main(){
Init();
Solve();
return 0;
}


"Фибоначчи 2008"
amartaivan




#include<iostream.h>

main()
{
long a,b,i,x,n;

cin>>n;

a=1;
b=1;
i=3;
while(i<=n)
{
x=b;
b=(a+b)%10;
a=x;
i++;
}
if (i<3) cout<<1<<endl;
else cout<<b<<endl;
}


"Гурвалжингууд"
lmo_0731




#include<iostream>
#include<cmath>
using namespace std;
typedef struct pointdef
{
int x,y;
}point;
typedef struct trandef
{
point p[3];
}tran;
long trana(int x1, int y1, int x2, int y2, int x3, int y3)
{
return abs(x1*y2-x2*y1+x2*y3-x3*y2+x3*y1-x1*y3);
}
int check(tran t, int x, int y)
{
if(trana(t.p[0].x,t.p[0].y,t.p[1].x,t.p[1].y,t.p[2].x,t.p[2].y)==trana(x,y,t.p[1].x,t.p[1].y,t.p[2].x,t.p[2].y)+trana(t.p[0].x,t.p[0].y,x,y,t.p[2].x,t.p[2].y)+trana(t.p[0].x,t.p[0].y,t.p[1].x,t.p[1].y,x,y)) return 1;
return 0;
}
int main()
{
int n,i,j,k;
int x1,y1,x2,y2,x3,y3;
tran t[10];
cin>>n;
for(i=0; i<n; i++)//buh tsegee avah uildel
{
cin>>x1>>y1>>x2>>y2>>x3>>y3;
t[i].p[0].x=x1;//gurvaljind onooh
t[i].p[0].y=y1;
t[i].p[1].x=x2;
t[i].p[1].y=y2;
t[i].p[2].x=x3;
t[i].p[2].y=y3;
}
int m,_max=0;
for(i=0; i<n; i++) //shalgah
{
for(j=0; j<3; j++)
{
m=0;
for(k=0; k<n; k++) m=m+check(t[k],t[i].p[j].x,t[i].p[j].y);
if(m>_max) _max=m;
}
}
cout<<_max;
return 0;
}


"Хяналт"
Chimed




#include <cstdio>
#include <vector>
#include <algorithm>
#include <iostream>
#include <map>
using namespace std;
char convert(char c){
if (c>='a'&&c<='z') return (char)(c-'a'+'A');
else return c;
}
string p;
int reads(){
p="";
int i;
for (;;)
{
i=getchar();
if (i==' '||i=='\t'||i=='.'||i==',') break;
else if (i=='\n') return 1;
else if (i==EOF) return 2;
else if (i=='-') p=p+'-';
else if (i>='a'&&i<='z') p=p+(char)(i-'a'+'A');
else if (i>='A'&&i<='Z') p=p+(char)i;
}
return 0;
}
int main(){
int i,n,k;
map <string, int > m;
scanf("%d\n",&n);
for (i=0;i<n;i++)
{
reads();
//printf("%s\n",p.c_str());
m[p]=1;
}
string s;
n=0;
do{
i=reads();
if (i==1&&p.length()>0&&p[p.length()-1]=='-')
{
s=p.substr(0,p.length()-1);
i=reads();
p=s+p;
}
// printf("%s\n",p.c_str());
if (m.find(p)!=m.end()) n++;
}while(i!=2);
printf("%d",n);
return 0;
}


"Мерсений тоо"
Naranbayar




#include<stdio.h>

main()
{
int a[10]={0};
long n,b[20]={0},p,i;

scanf("%ld",&n);
a[1]=2; a[2]=3;
a[3]=5; a[4]=7;
a[5]=11; a[6]=13;
a[7]=17; a[8]=19;
a[9]=23;
p=1;
for(i=1; i<=19; i++)
{
p*=2;
b[i]=p-1;

}
i=1;
while((b[a[i]]<n)&&(i<=8))
{
if(b[a[i]]!=2047)printf("%ld\n",b[a[i]]);
i++;
}
if(i==1) printf("No solution\n");
}

воскресенье, 19 октября 2008 г.

Сайтад оролцогч сургуулиуд (45)

  • 11-р сургууль
  • 24-р сургууль
  • 27-р сургууль
  • 6-р сургууль
  • 84-р сургууль
  • Aptech сургалтын төв
  • DaTS
  • Dhaka City College
  • Dickinson State University
  • DMTS
  • Huree-ICT
  • Huwsgul MGS
  • Japan TUT
  • MCS
  • MUENCHEN UNI
  • MUST-EHIS
  • NUM-SMCS
  • Osaka University
  • Progress
  • shine-ireedui
  • SHUTIS, HMTS
  • STS
  • Ulaangom College
  • USI MC
  • Баянхонгор аймгийн Номгон сургууль
  • Бээжингийн их сургууль
  • Дармштадтын технологийн их сургууль
  • Дархан хотын RGB 26-р дунд сургууль
  • Дорнод аймгийн 1-р сургууль
  • Калифорнийн их сургууль
  • Массачусетсийн технологийн их сургууль
  • МУБИС
  • МУҮИС
  • МУҮИС МКС
  • МУҮИС МТС
  • Ражив Гандийн нэрэмжит Үйлдвэр урлалын сургууль
  • Сант
  • Токиогийн их сургууль
  • Улаанбаатарын Монгол-Туркийн сургууль
  • Хөвсгөл аймгийн Ирээдүй сургууль
  • Шинэ Монгол
  • Шинэ үе
  • ШУТИС КтМС
  • Эм Ай Ю олон улсын дээд сургууль
  • Эрдэнэтийн Монгол-Туркийн сургууль