Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- using namespace std;
- class Tasks{
- public:
- int start;
- int end;
- string jorc = "C";
- int originalPlace = 0;
- Tasks(){
- start = 0;
- end = 0;
- }
- Tasks(int start, int end){
- start = start;
- end = end;
- }
- };
- // Sort Tasks from earliest to latest;
- void sortTasks(Tasks arr[], int n)
- {
- int i;
- for(i = 0; i < n; i++)
- {
- int j;
- for(j = 0; j < n; j++)
- {
- if(arr[i].start < arr[j].start)
- {
- Tasks temp;
- temp = arr[i];
- arr[i] = arr[j];
- arr[j] = temp;
- }
- }
- }
- }
- // Sort Tasks based on Original place;
- void revertSortTasks(Tasks arr[], int n)
- {
- for(int i = 0; i < n; i++)
- {
- for(int j = 0; j < n; j++)
- {
- if(arr[i].originalPlace < arr[j].originalPlace)
- {
- Tasks temp;
- temp = arr[i];
- arr[i] = arr[j];
- arr[j] = temp;
- }
- }
- }
- }
- int main(){
- int T;
- scanf("%d", &T);
- string results[T];
- for(int i = 0; i < T; i++){
- int howMany;
- scanf("%d", &howMany);
- Tasks taskArray[howMany];
- bool possible = true;
- for(int j = 0; j < howMany; j++){
- scanf("%d" "%d", &taskArray[j].start, &taskArray[j].end);
- taskArray[j].originalPlace = j;
- }
- //sort as task por ordem de inicio;
- sortTasks(taskArray, howMany);
- //setjorc(taskArray);
- for (int j = 0; j < howMany; j++){
- int overlaps = 0;
- for (Tasks other : taskArray){
- if (taskArray[j].start > other.start && other.end > taskArray[j].start){
- overlaps++;
- if (other.jorc == "C"){
- taskArray[j].jorc = "J";
- }
- }
- if(overlaps >= 2){
- possible = false;
- break;
- }
- }
- }
- //revert o sort;
- revertSortTasks(taskArray, howMany);
- //saves results;
- if (possible){
- string str = taskArray[0].jorc;
- for (int j = 1; j < howMany; j++){
- str = str + taskArray[j].jorc;
- }
- results[i] = str;
- }
- else{
- results[i] = "IMPOSSIBLE";
- }
- }
- for(int i = 0; i < T; i++){
- int caso = i + 1;
- printf("Case #%d: %s\n", caso, results[i].c_str());
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement