Week 15実験


A題:Q先生はN人の学生がいて、それぞれの学生はそれぞれ独立した番号を持っていて、しかも番号の範囲は1~Nの間です.
この日、すべての学生が異なる時間に教室に入った.
Q先生は,i番の生徒が教室に入ると,教室にはAi人(i番の生徒も含む)の生徒がいることを記録している.
これらの記録に基づいて、学生が教室に入る順序を与えることが要求される.コード:
#include
#include
using namespace std;
int a[100000];
int main()
{
     
   int N,y;
   cin>>N;
   for(int i=1;i<=N;i++)
   {
     
        cin>>y;
        a[y]=i;
        y=0;
   }
   for(int i=1;i<=N;i++){
     
        cout<<a[i]<<" ";
   }
   cout<<endl;
}

B題:周知のように、ZJMはB駅に住んでいます.
この日Q先生がZJMに遊びに来て、ZJMはQ先生に自分の速い番組を見る能力を見せることにしました.
ZJMはQ先生に任意に1部の番を选ばせて、Q先生は一目で《辉夜お嬢さんは私に告白させたいです》に当たって、この番が全部でNつのすばらしい断片があることを知っていて、すべてのすばらしい断片は[L[i],R[i]]で表します.
ZJMは1分目から見て、毎回早送りボタンを押すことができて、早送りX分、ZJMが一番早くどのくらいこの番組を見ることができるかを聞いています.
Inputの第1行は2つの整数N,X(1≦N≦50,1≦X≦1 e 5)を与える
次のN行は、各行に2つの整数を与え、L[i]、R[i](1≦L[i]≦R[i]≦1 e 5)
データ保証、R[i-1]#include #include #include #include #include #include #include using namespace std; int main() { int i,sum,N,x,L,R; scanf("%d %d",&N,&x); sum=0; i=1; while(N--) { scanf("%d %d",&L,&R); while(i+x<=L) { i+=x; } sum+=(R-i+1); i=R+1; } printf("%d
"
,sum); return 0; }

C題:TTの謎のミッションシリーズ.
今回、TTは長さNの文字列を得て、タスクは元の文字列の中で1文字まで削除することを要求して、文字列の辞書の順序ができるだけ小さいようにします.
文字列ディクショナリ順序の比較優先度は次のとおりです.
左から右への最初の異なる文字のASCII値のサイズ関係
文字列長コード:
#include
#include

using namespace std;

int main()
{
     
	int n;
	cin >> n;
	string s;
	cin >> s;
	int x = 0;
	for (int i = 0; i < n - 1; i++)
	{
     
		if (s[i] > s[i + 1])
		{
     
			s.erase(i, 1);
			x = 1;
			break;
		}
	}
	if (x == 0)
	{
     
		s.erase(n - 1, 1);
		cout << s << endl;
	}
	else
	{
     
		cout << s << endl;
	}
	return 0;
}