Goharshady

New Member
ارسال ها
2,239
لایک ها
166
امتیاز
0
#1
با توجه به طولانی و شلوغ شدن ماراتن ++C این تاپیک رو درست کردم تا یک کمی منظم تر همون کار تاپیک ماراتن ++C رو انجام بدیم.
فقط قوانین یه فرق کوچیک کرده:
همزمان می تونیم 2 تا سوال بذاریم.
قوانین ماراتن ++C را بخوانید:
ftopic-2621-0.html
چون می خواهیم شماره گذاری سوالات بامزه تر بشه از حروف برای شماره گذاری استفاده کنید!
اولین سوال می شه A سوال بعدی B و... و اینطوری ادامه پیدا می کنه:
A,B,...,Z.,AA,AB,...,AZ,BA,BB,...BZ,...,...,ZZ,AAA,...

موفق باشید
 

SABB

New Member
ارسال ها
704
لایک ها
25
امتیاز
0
#4
Goharshady گفت
اولین سوال می شه A سوال بعدی B و... و اینطوری ادامه پیدا می کنه:
A,B,...,Z.,AA,AB,...,AZ,BA,BB,...BZ,...,...,ZZ,AAA,...

موفق باشید
یاد اون سوال CodeForces افتادم
 

SABB

New Member
ارسال ها
704
لایک ها
25
امتیاز
0
#5
[center:76be7fe85c]


تاریخ معاصر ایران (!)

دو تاریخ به صورت year/month/day داریم. می خواهیم تعداد روز های بین این دو تاریخ را محاسبه کنیم. تاریخ ها به میلادی هستند و در نتیجه هر سالی که بر 4 بخشپذیر بود سال کبیسه خواهد بود. البته باید به این نکته توجه داشت سال های اول قرن (مثل 2000، 1000، 3200) کبیسه اند اگر و تنها اگر بر 400 بخشپذیر باشند.
بدبختانه، ممکن است لولو (!) جای سال و روز و ماه را با یکدیگر عوض کرده باشد. در مواردی مثلا 2000 10 25 به راحتی میفهمیم تاریخ اصلی 10 25 2000 بوده است. ولی برای موردی مانند 13 12 420 ما نمی توانیم مطمئن باشیم تاریخ اصلی چه بوده؟!

ورودی:
در سطر اول t (تعداد testcase ها) و i امین testcase شامل دو خط که هر دو شامل یک تاریخ (سه عدد صحیح مثبت جداشده از هم بوسیله یک فاصله خالی) هستند.

خروجی:
برای هر testcase یک عدد صحیح مثبت که بیانگر ماکزیمم تعداد روز های ممکن بین آن دو تاریخ است.
[/center:76be7fe85c]
 

Olympiad

New Member
ارسال ها
1,268
لایک ها
134
امتیاز
0
#6
SABB گفت
[center:fbad5ab4fd]


تاریخ معاصر ایران (!)

دو تاریخ به صورت year/month/day داریم. می خواهیم تعداد روز های بین این دو تاریخ را محاسبه کنیم. تاریخ ها به میلادی هستند و در نتیجه هر سالی که بر 4 بخشپذیر بود سال کبیسه خواهد بود. البته باید به این نکته توجه داشت سال های اول قرن (مثل 2000، 1000، 3200) کبیسه اند اگر و تنها اگر بر 400 بخشپذیر باشند.
بدبختانه، ممکن است لولو (!) جای سال و روز و ماه را با یکدیگر عوض کرده باشد. در مواردی مثلا 2000 10 25 به راحتی میفهمیم تاریخ اصلی 10 25 2000 بوده است. ولی برای موردی مانند 13 21 420 ما نمی توانیم مطمئن باشیم تاریخ اصلی چه بوده؟!

ورودی:
در سطر اول t (تعداد testcase ها) و i امین testcase شامل دو خط که هر دو شامل یک تاریخ (سه عدد صحیح مثبت جداشده از هم بوسیله یک فاصله خالی) هستند.

خروجی:
برای هر testcase یک عدد صحیح مثبت که بیانگر ماکزیمم تعداد روز های ممکن بین آن دو تاریخ است.
[/center:fbad5ab4fd]

ما 21 ماه داشتيم و خبر نداشتيم !!!!!!! 1 حالت كه بيشتر نداره !!!!!
 

SABB

New Member
ارسال ها
704
لایک ها
25
امتیاز
0
#7
Olympiad گفت
SABB گفت
[center:f7111deb29]


تاریخ معاصر ایران (!)

دو تاریخ به صورت year/month/day داریم. می خواهیم تعداد روز های بین این دو تاریخ را محاسبه کنیم. تاریخ ها به میلادی هستند و در نتیجه هر سالی که بر 4 بخشپذیر بود سال کبیسه خواهد بود. البته باید به این نکته توجه داشت سال های اول قرن (مثل 2000، 1000، 3200) کبیسه اند اگر و تنها اگر بر 400 بخشپذیر باشند.
بدبختانه، ممکن است لولو (!) جای سال و روز و ماه را با یکدیگر عوض کرده باشد. در مواردی مثلا 2000 10 25 به راحتی میفهمیم تاریخ اصلی 10 25 2000 بوده است. ولی برای موردی مانند 13 21 420 ما نمی توانیم مطمئن باشیم تاریخ اصلی چه بوده؟!

ورودی:
در سطر اول t (تعداد testcase ها) و i امین testcase شامل دو خط که هر دو شامل یک تاریخ (سه عدد صحیح مثبت جداشده از هم بوسیله یک فاصله خالی) هستند.

خروجی:
برای هر testcase یک عدد صحیح مثبت که بیانگر ماکزیمم تعداد روز های ممکن بین آن دو تاریخ است.
[/center:f7111deb29]

ما 21 ماه داشتيم و خبر نداشتيم !!!!!!! 1 حالت كه بيشتر نداره !!!!!
12 بوده. ببخشید

اشتباه از IAUMCCC بوده، نه من!
 

Olympiad

New Member
ارسال ها
1,268
لایک ها
134
امتیاز
0
#8
خوب اينجوري فقط يك حالت داره و اونم 13 12 420 هست !!!!!! يعني به جز اينم ميشه !؟!؟!
 

SABB

New Member
ارسال ها
704
لایک ها
25
امتیاز
0
#9
Olympiad گفت
خوب اينجوري فقط يك حالت داره و اونم 13 12 420 هست !!!!!! يعني به جز اينم ميشه !؟!؟!
چه می دونم!!! مثل اینکه IAUMCCC خیلی قاطی داشته!!!
اون 13 رو هم 11 کنید!!!!
 

Goharshady

New Member
ارسال ها
2,239
لایک ها
166
امتیاز
0
#11
[center:224b8f2d66]
[/center:224b8f2d66]
در این مورد خرکاری و Brute-Force با توجه به این که Time limit نداریم کار می کنه.​
 

Goharshady

New Member
ارسال ها
2,239
لایک ها
166
امتیاز
0
#12
[center:6f35eceefd]D[/center:6f35eceefd]
مجموعه ی D[SUB]n[/SUB] شامل همه ی اعداد کوچکتر یا مساوی n است که نسبت به n اول هستند. __ n حداقل 2 است __ به شما یک n داده شده است. شما باید مجموعه ی D[SUB]n[/SUB] را به دست آورده و این موارد را در خروجی بنویسید:
تعداد اعضای این مجموعه
باقیمانده ی حاصلضرب اعضای مجموعه بر n
مثال:

ورودی:
2

خروجی:
1 1



محدودیت ها:

حافظه ی قابل استفاده برای هر تست: 64 مگابایت
خروجی در stdout چک می شود و از stderr صرف نظر می شود
محدودیت زمان: 2 ثانیه
حداکثر اندازه ی فایل CPP سورس برنامه : 50 کیلوبایت
حداکثر زمان کامپایل: 10 ثانیه
asm غیرمجاز است
عدم امکان استفاده از conio و cstdlib
 

Olympiad

New Member
ارسال ها
1,268
لایک ها
134
امتیاز
0
#13
[center:4b6539ef4a]


کد
#include <iostream>
 using namespace std; 
 int gcd(int k,int t)
   {
	int i=1;
	 while(i>0)
	   {
		i=k%t;
		k=t;
		t=i;
	   }
	return k;
   } 

  int main()
    {
	 int n;
	 cin>>n;
	 int count=0;
	 long long s=1;
	 for(int i=1;i<=n;i++)
	   if(gcd(n,i)==1)
	    {
		 count++;
		 s*=i;
		 s%=n;
	    }
    cout<<count<<" "<<(s%n)<<endl;
    return 0;
  }
[/center:4b6539ef4a]
 

Goharshady1

New Member
ارسال ها
37
لایک ها
0
امتیاز
0
#14
Olympiad گفت
[center:857836d8fa]


کد
#include <iostream>
using namespace std; 
int gcd(int k,int t)
   {
	int i=1;
	 while(i>0)
	   {
		i=k%t;
		k=t;
		t=i;
	   }
	return k;
   } 

  int main()
    {
	 int n;
	 cin>>n;
	 int count=0;
	 long long s=1;
	 for(int i=1;i<=n;i++)
	   if(gcd(n,i)==1)
	    {
		 count++;
		 s*=i;
		 s%=n;
	    }
    cout<<count<<" "<<(s%n)<<endl;
    return 0;
  }
[/center:857836d8fa]

کد
test1
passed
test2
passed
test3
passed
test4
passed
test5
passed
test6
passed
test7
passed
Completed!
Judge Successful!
Accepted
 

Goharshady

New Member
ارسال ها
2,239
لایک ها
166
امتیاز
0
#15
SABB گفت
Olympiad گفت
خوب اينجوري فقط يك حالت داره و اونم 13 12 420 هست !!!!!! يعني به جز اينم ميشه !؟!؟!
چه می دونم!!! مثل اینکه IAUMCCC خیلی قاطی داشته!!!
اون 13 رو هم 11 کنید!!!!
راجع به همشهری های ما درست حرف بزن
 

rezashiri

Well-Known Member
ارسال ها
1,458
لایک ها
325
امتیاز
83
#16
[center:010007e475]
[/center:010007e475]
سلام
.

سوال amateurhackers از محیط ACM_Training سایت http://acm.sharif.edu

کدی که من زدم فقط آخرش باید نقطه بذارین!:

مثلا ورودی اینجوریه:

کد
1
ReZa SHiRi .
 

Goharshady

New Member
ارسال ها
2,239
لایک ها
166
امتیاز
0
#17

rezashiri

Well-Known Member
ارسال ها
1,458
لایک ها
325
امتیاز
83
#18
[center:1bd95509c5]
[/center:1bd95509c5]
کد من:

کد
#include <cstdio>
#include <conio.h>
#include <cstring>
#include <iostream>

using namespace std;

bool ishack(char s[30])
{

	if((int)s[0]<65 || (int)s[0]>90) return false;
	
	for(int i=1;i<s[i];i++)
	{ 
		    if( s[i]=='A' || s[i]=='E' || s[i]=='I' || s[i]=='O' || s[i]=='U') return false;
		    if((int)s[i]<65 || (int)s[i]>90 && s[i]!='a' && s[i]!='e' && s[i]!='i' && s[i]!='o' && s[i]!='u') return false;
		  
	}
	
	return true;
}

int main()
{
    int i=0,n,out[1000],tedad[1000];
    char s[10][4],s1[10][30];
    
    scanf("%d",&n);
    
for(int z=0;z<n;z++)
{   
	tedad[z]=0; out[z]=0;
	start:
	cin>>s[z];
	if(ishack(s[z])) out[z]++;
	tedad[z]++;
	if(s[z][0]!='.') goto start;
	
}
for(int j=0;j<n;j++)
printf("%d out of %d.\n",out[j],tedad[j]-1);
    
    getch();
    return 0;
}
 

Goharshady

New Member
ارسال ها
2,239
لایک ها
166
امتیاز
0
#19
[center:bafa263bdf]F[/center:bafa263bdf][center:bafa263bdf]سوال HorriblyFastCalculation از محیط ACM Training از سایت http://acm.sharif.ir[/center:bafa263bdf]
 

Goharshady

New Member
ارسال ها
2,239
لایک ها
166
امتیاز
0
#20
Olympiad گفت
SABB گفت
[center:ab8c6cc4f3]


تاریخ معاصر ایران (!)

دو تاریخ به صورت year/month/day داریم. می خواهیم تعداد روز های بین این دو تاریخ را محاسبه کنیم. تاریخ ها به میلادی هستند و در نتیجه هر سالی که بر 4 بخشپذیر بود سال کبیسه خواهد بود. البته باید به این نکته توجه داشت سال های اول قرن (مثل 2000، 1000، 3200) کبیسه اند اگر و تنها اگر بر 400 بخشپذیر باشند.
بدبختانه، ممکن است لولو (!) جای سال و روز و ماه را با یکدیگر عوض کرده باشد. در مواردی مثلا 2000 10 25 به راحتی میفهمیم تاریخ اصلی 10 25 2000 بوده است. ولی برای موردی مانند 13 21 420 ما نمی توانیم مطمئن باشیم تاریخ اصلی چه بوده؟!

ورودی:
در سطر اول t (تعداد testcase ها) و i امین testcase شامل دو خط که هر دو شامل یک تاریخ (سه عدد صحیح مثبت جداشده از هم بوسیله یک فاصله خالی) هستند.

خروجی:
برای هر testcase یک عدد صحیح مثبت که بیانگر ماکزیمم تعداد روز های ممکن بین آن دو تاریخ است.
[/center:ab8c6cc4f3]

ما 21 ماه داشتيم و خبر نداشتيم !!!!!!! 1 حالت كه بيشتر نداره !!!!!
می شه بگین یک حالتش کدومه؟
 
بالا